Abbiamo un insieme di elementi che ha la seguente struttura:MongoDB interrogazione advanced: ricevi elementi di un array corrispondenza a una seconda condizione
elementi:
{
id : 123,
items : [ { color: "blue", "groups" : [3, 5] }, { color: "red", "groups" : [6, 8] } ]
}
{
id : 124,
items : [ { color: "blue", "groups" : [1, 2] }, { color: "green", "groups" : [5, 9] } ]
}
vogliamo un modo efficiente per ottenere elementi che avere un oggetto con colore blu accessibile ai gruppi 5, 9, 27, 123 o 56. Questo dovrebbe restituire Element con id 123 ma non con l'elemento 124 perché l'articolo deve soddisfare entrambe le condizioni. Vogliamo che la query sia il più efficiente possibile.
Questa query è efficiente, ma non soddisfa il requisito:
{$and : { "items.groups" : { $in : [5, 9, 27, 123, 56] }, "items.color" : "blue" }}
quanto corrisponderà id = 124
perché ha un elemento che corrisponde a "blu" e un altro uno che corrisponde gruppo 9.
ho trovato '$ elemMatch' specificato [nel mon vai doc] (http://docs.mongodb.org/manual/tutorial/query-documents/). Come principiante, ho trovato utile visualizzare tutti gli esempi da [lì] (http://docs.mongodb.org/manual/tutorial/query-documents/), forse qualcun altro lo farà. –