У меня есть 'имя' коллекции с 2 документами структуры:
DOC 1:
{
a: 1
b : [{name:"AAA",age:10},
{name:"BBB",age:12},
{name:"CCC",age:13}]
}
документ 2:
{
a: 2
b : [{name:"DDD",age:14},
{name:"EEE",age:15},
{name:"FFF",age:16}]
}
Так как я новый to MongoDB, я пытаюсь найти разницу в использовании оператора $ elemMatch и не использовать его. В основном я пытаюсь запрос и найти первый документ (документ 1) с именем AAA и возрастом 10. Таким образом, с помощью $ elemMatch, мой запрос выглядит следующим образом:
db.name.find({b: {$elemMatch :{name:"AAA",age:10}}})
Этот запрос отлично работает, но на мой вопрос в том, что то, что необходимо использовать этот запрос, когда я могу запросить так:
db.name.find({b:{name:"AAA",age:10}})
Я уверен, что должна быть какая-то причина $ elemMatch, просто пытается найти разницу. Спасибо заранее за ответ !!!
Второй запросом является совпадением по всему вложенному документу 'db.name.find ({Ь { имя: «AAA», возраст: 10}}) ', но не' db.name.find ({"b.name": "AAA", "b.age": 10}) '. Таким образом, второй запрос теоретически является $ elemMatch в случае использования OP. – Veeram