Interrogation champs de tableau de MongoDB avec plus d'une condition
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?
La solution
Vous pouvez utiliser la $elemMatch
opérateur pour ce faire, par exemple
foo.find( { "array_element" :
{ $elemMatch : { 'some_identifier' : 'abcdefg', 'value' : 8 } } } );