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