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?

È stato utile?

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
scroll top