Как выбрать объект в массиве, у которого есть элемент, равный полю документа-владельца? - PullRequest
1 голос
/ 13 марта 2019

У меня есть такой документ:

{
 MyField1: 'A'
 MyArray: [
  {
   MyArrayField1 = 'C';
   MyArrayField2 = 25;
  },
  {
   MyArrayField1 = 'A';
   MyArrayField2 = 26;
  }
]

Как выбрать все документы, которые содержат в MyArray объект с MyArrayField1 = MyField1 AND MyArrayField2 = 26;?

1 Ответ

1 голос
/ 13 марта 2019

Согласно: Условие запроса MongoDb при сравнении 2 полей

Вы можете использовать expr примерно так:

db.find({$and: [{$expr: {$eq: ["$MyArray.MyArrayField1", "$MyField1"]}}, {"MyArray.MyArrayField2": 26}]})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...