Interrogazione di campi di array mongodb con più di una condizione
Domanda
Esiste un modo per interrogare i campi di array all'interno dei documenti di MongoDB usando più di una condizione? Documento di esempio:
{
'title': 'A document title',
'array_element': [
{
'some_identifier': 'abcdefg',
'value': 10
},
{
'some_identifier': 'hijklmnop',
'value': 5
},
{
...etc...
}
]
}
Devo interrogare una raccolta per trovare il valore più basso per un identificatore specifico, tuttavia questi valori sono memorizzati con altri in un array. So di poter interrogare la raccolta per trovare il documento che contiene l'elemento array con il valore più basso e che contiene l'elemento array che corrisponde a un identificatore, ma non posso essere sicuro che un elemento di array specifico corrisponda a entrambe queste condizioni . C'è un modo per farlo in modo efficiente?
Soluzione
Puoi usare il $elemMatch
operatore per raggiungere questo obiettivo, ad esempio
foo.find( { "array_element" :
{ $elemMatch : { 'some_identifier' : 'abcdefg', 'value' : 8 } } } );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow