Mongodb: come utilizzare l'operatore and ($and) nelle query
Puoi utilizzare l’operatore $and in MongoDB per cercare documenti che corrispondono a più criteri.
Questo operatore utilizza la seguente sintassi di base:
db.myCollection.find({ " $and ": [ {" field1 ": " hello "}, {" field2 ": { $gte : 10 }} ] })
Questo particolare esempio cerca tutti i documenti nella raccolta denominata myCollection dove campo1 è uguale a “ciao” e campo2 ha un valore maggiore o uguale a 10.
I seguenti esempi mostrano come utilizzare questa sintassi nella pratica con un team di recupero crediti con i seguenti documenti:
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 12}) db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Spurs ", points: 23, rebounds: 9})
Esempio 1: utilizzare l’operatore AND con due campi
Il codice seguente mostra come trovare tutti i documenti nella raccolta squadre in cui il campo “squadra” è uguale a “Spurs” e il valore del campo “punti” è maggiore o uguale a 22:
db.teams.find({ " $and ": [ {" team ": " Spurs "}, {" points ": { $gte : 22 }} ] })
Questa query restituisce i seguenti documenti:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 } { _id: ObjectId("6201824afd435937399d6b6d"), team: 'Spurs', points: 23, rebounds: 9 }
Tieni presente che ogni documento nell’output contiene “Spurs” nel campo squadra e un valore maggiore o uguale a 22 nel campo punti.
Esempio 2: utilizzare l’operatore AND con più di due campi
Il codice seguente mostra come trovare tutti i documenti nella raccolta squadre in cui il campo “squadra” non è uguale a “Mavs” e il valore nel campo “punti” è maggiore o uguale a 22 e il valore nel campo “rimbalzi » il campo è inferiore a 7:
db.teams.find({ " $and ": [ {" team ": { $ne : " Mavs "}}, {" points ": { $gte : 22 }}, {" rebounds ": { $lt : 7 }} ] })
Questa query restituisce il seguente documento:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 }
Tieni presente che questo è l’unico documento della raccolta che soddisfa tutti e tre i criteri:
- Il campo “Squadra” non è uguale a “ Mavs ”
- Il campo “punti” ha un valore maggiore o uguale a 22
- Il campo “rimbalzi” ha un valore inferiore a 7
Nota : puoi trovare la documentazione completa per la funzione $and qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni in MongoDB:
MongoDB: come verificare se il campo contiene una stringa
MongoDB: come utilizzare una query “NO IN”.
MongoDB: come cercare “not null” in un campo specifico