【发布时间】:2019-05-20 14:16:53
【问题描述】:
我无法使用dot syntax of mongo 在 mongodb 中查询空值。
数据库中的一些东西:
db.things.insertMany([
{ a: [{ value: 1 }] },
{ a: [{ value: null }] },
{ a: [{ value: 2 }] }
]);
我想查找所有在“a”数组中第一个元素为空值的文档。
查询:
db.getCollection('things').count({ "a.0.value": 1 }) => 1(如预期)
db.getCollection('things').count({ "a.0.value": null }) => 3 (我也希望这里有 1 个)
我有点不知所措,为什么这会返回第二个查询的所有元素。它似乎只对数组索引结果有这种行为,这也让它有点奇怪。 (例如db.getCollection('things').count({ "a": null }) => 0 符合预期)
我唯一能想到的是,当它的值为 null 但我不知道如何解决这个问题时,它基本上取消了整个语句。
MongoDB v3.4.10
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework