mongodb - 在双重嵌套数组中查找

标签 mongodb mongodb-query

我有一个这样的文档:

{ 
   "_id":ObjectId("5b306824a1eab22e77858c88"),
   "data":{ 
      "Key":[ 
         [ 
            "1529587723",
            "KeyIn"
         ],
         [ 
            "1529587723",
            "Num"
         ],
         [ 
            "1529667745",
            "KeyIn"
         ]
      ]
   },
   "devicecode":"MP1D1XAH@LENOVO"
}

我的问题是如何查找所有带有“KeyIn”的记录?我试过了

db.dataup.find({ "data.key": "KeyIn" })

但它不起作用。

最佳答案

您需要使用双重嵌套 $elemMatch在双重嵌套数组中查找

db.collection.find({
  "data.Key": {
    "$elemMatch": {
      "$elemMatch": { "$in": ["KeyIn"] }
    }
  }
})

MongoPlayground

关于mongodb - 在双重嵌套数组中查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57967936/

相关文章:

mongodb - 从字符串值中删除空格(前导和尾随)

node.js - $group by 之后的动态键

使用 Gson 将 Java 日期转为 MongoDB 日期

node.js - 从 mongoose 中等效的数组 mongodb 中删除一个项目

MongoDB 以特定的粒度在日期上创建索引?

javascript - MongoDB 唯一值聚合通过 map reduce

javascript - docker compose 将 mongodb 容器与 Node js 容器连接起来

java - 使用 Java-Hadoop 连接器更新 MongoDB 中的现有集合

mysql - 是否有任何工具可以将数据从 MySQL(或 mongodb)迁移到 Aerospike?

mongodb - 将 mongo 中给定键/值对的查询结果作为返回值的数组返回的最简单方法是什么?