MongoDB-如何在嵌套的对象数组中查找空值

MongoDB-如何在嵌套的对象数组中查找空值,mongodb,Mongodb,如果我有这样的文档: { "items": [ { "key": null } ] }, { "items": [ { "key": 2 } ] } ] 。。。如何找到“key”设置为null的文档 这是我一直在尝试的查询,但我不明白为什么它会同时返回两个文档: db.collection.find({ "items.0.key": { $eq: null

如果我有这样的文档:

  {
    "items": [
      {
        "key": null
      }
    ]
  },
  {
    "items": [
      {
        "key": 2
      }
    ]
  }
]
。。。如何找到“key”设置为null的文档

这是我一直在尝试的查询,但我不明白为什么它会同时返回两个文档:

db.collection.find({
  "items.0.key": {
    $eq: null
  }
})
null
不仅匹配自身,还匹配“不存在”。因此,查询值为
null
的键将返回所有文档

解决方法:我们需要使用运算符执行查询

db.collection.find({
  "items.0.key": {
    $type: 10
  }
})

这是可行的,但我应该解释一下,只有当items数组只包含一个对象时,我才查找此文档。@CharlesJohnson更新了我的答案,请再次检查