Запрос поля массивов MongoDB с более чем одним условием
Вопрос
Есть ли способ запроса полей массивов в документах в MongoDB с использованием более одного условия? Пример документа:
{
'title': 'A document title',
'array_element': [
{
'some_identifier': 'abcdefg',
'value': 10
},
{
'some_identifier': 'hijklmnop',
'value': 5
},
{
...etc...
}
]
}
Мне нужно запросить коллекцию, чтобы найти самое низкое значение для конкретного идентификатора, однако эти значения хранятся с другими в массиве. Я знаю, что могу запросить коллекцию, чтобы найти документ, который содержит элемент массива с наименьшим значением, и который содержит элемент массива, который соответствует идентификатору, но я не могу быть уверен, что определенный элемент массива будет соответствовать оба эти условия Анкет Есть ли способ сделать это эффективно?
Решение
Вы можете использовать $elemMatch
оператор Чтобы сделать это, например
foo.find( { "array_element" :
{ $elemMatch : { 'some_identifier' : 'abcdefg', 'value' : 8 } } } );
Не связан с StackOverflow