Elementi di interrogazione dell'array con il mongo
Domanda
Come posso interrogare i frullati che hanno mele in loro?(Di seguito è riportata una collezione con 3 documenti)
_id => 1
name => 'best smoothie'
ingredients => Array
(
[0] => apple
[1] => raspberry
[2] => orange
[3] => banana
)
_id => 2
name => 'summer smoothie'
ingredients => Array
(
[0] => lemon
[1] => mint
)
_id => 3
name => 'yogurt smoothie'
ingredients => Array
(
[0] => apple
[1] => blueberry
)
. Soluzione
Se è sufficiente eseguire la query al di sotto di MongoDB è abbastanza intelligente da capire cosa stai cercando di fare.
{ ingredients: "apple" }
.
Mongo vedrà che gli ingredienti sono un elenco e solo i documenti di ritorno contengono "Apple" alcuni dove in quella lista.
Altri suggerimenti
Dal Documentazione :
.Nota: campi contenenti array corrispondono agli operatori condizionati, se solo uno Corrispondenze dell'articolo .
Pertanto, la seguente query:
db.collection.find( { field: { $gt:0, $lt:2 } } );
corrisponderanno a un documento che contiene il Campo seguente:
{ field: [-1,3] }
Perché le persone scrivono applicazioni scalabili per i frullati?
db.find ({"ingredienti": {$ in: "Apple"}});