В MongoDB, как использовать «$ expr» с массивом? - PullRequest
1 голос
/ 30 марта 2019

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

{
 MyField1: 'A',
 MyArray: [
  {
   MyArrayField1: 'C';
  },
  {
   MyArrayField1: 'A';
  }
 ]
}

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

Я пытался

db.find ({$ expr: {$ eq: ["$ MyArray.MyArrayField1", "$ MyField1"]}})

даже

db.find ({$ expr: {$ eq: ["$ MyArray.MyArrayField1", "A"]}})

но это не работает: (

1 Ответ

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

Вы можете использовать $ в операторе

db.col.find({
    $expr: {
        $in: [ "$MyField1", "$MyArray.MyArrayField1" ]
    }
})

В этом случае MyArray.MyArrayField1 будет представлять собой массив из двух значений A и C

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...