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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *