在 MongoDB 中如何将“$expr”与数组一起使用?

lok*_*oki 4 mongodb mongodb-query

假设我有以下文件:

{
 MyField1: 'A',
 MyArray: [
  {
   MyArrayField1: 'C';
  },
  {
   MyArrayField1: 'A';
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)

如何选择MyArray对象中的所有文档MyArrayField1 = MyField1

我试过

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

甚至

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

但它不起作用:(

mic*_*ckl 5

您可以使用$in运算符

db.col.find({
    $expr: {
        $in: [ "$MyField1", "$MyArray.MyArrayField1" ]
    }
})
Run Code Online (Sandbox Code Playgroud)

在这种情况下,MyArray.MyArrayField1将表示一个包含两个值的数组,A并且C