mongodb - 在 MongoDB 中如何将 "$expr"与数组一起使用?

标签 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"]}})



但它不起作用:(

最佳答案

您可以使用 $in运算符(operator)

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

在这种情况下 MyArray.MyArrayField1将表示一个包含两个值的数组 AC

关于mongodb - 在 MongoDB 中如何将 "$expr"与数组一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55434419/

相关文章:

mysql - 我的rails应用程序使用mysql数据库和AR-ORM,但我想要印象派单一使用MongoDB

javascript - collection.find().stream() 和 collection.find().batchSize(100).stream() 的区别?

javascript - 当连接到 MongoDB Replicaset 时,Node.js "auth fail"仅 3 个服务器中的 2 个处于运行状态

javascript - 基于BSON日期属性删除?

javascript - mongodb按范围查询分页与另一个排序字段

mongodb - 在嵌套数组、mongodb、 compass 中查找对象

c#-4.0 - MongoDb 中的继承 : how to request instances of defined type

javascript - MongoDB 聚合不同文档中数组中的项目数?

node.js - Mongoose - 获取 _ids 列表而不是具有 _id 的对象数组

node.js - 验证 Mongoose 中的子文档