在MongoDB中,如何对数组使用“ $ expr”?

时间:2019-03-30 18:20:40

标签: mongodb mongodb-query

我有这样的文件:

{
 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 个答案:

答案 0 :(得分:1)

您可以使用$in运算符

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

在这种情况下,MyArray.MyArrayField1将代表两个值AC的数组