Question

Est-il possible d'interroger les champs de tableau dans les documents en utilisant MongoDB plus d'une condition? Exemple document:

{
    'title': 'A document title',
    'array_element': [
        {
            'some_identifier': 'abcdefg',
            'value': 10
        },
        {
            'some_identifier': 'hijklmnop',
            'value': 5
        },
        {
            ...etc...
        }
    ]
}

Je dois interroger une collection pour trouver la valeur la plus basse pour un identifiant spécifique, mais ces valeurs sont stockées avec les autres dans un tableau. Je sais que je peux interroger la collection pour trouver le document qui contient l'élément de tableau avec la valeur la plus basse, et qui contient l'élément de tableau qui correspond à un identifiant, mais je ne peux pas être sûr qu'un élément de tableau spécifique correspondra à ces deux conditions . Est-il possible de le faire efficacement?

Était-ce utile?

La solution

Vous pouvez utiliser la $elemMatch opérateur pour ce faire, par exemple

foo.find( { "array_element" : 
             { $elemMatch : { 'some_identifier' : 'abcdefg', 'value' : 8 } } } );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top