mongoDB:如何检查嵌套字典中键的存在性?
我在MongoDB里有一个嵌套的字典。请问怎么查询某个特定的字典路径是否存在?我用正则表达式查找键的时候遇到问题。
字典的例子:
dict1 = {A:{B:{C:{D:{E:1}},F:{G:{H:{L:1}}}}}
dict2 = {A:{B:{C:{D:{E:1}},K:{G:{S:{L:1}}}}}
我想确认是否有任何文档包含路径 A.B.C.K.G.S(我不太关心 S 的值,即 L)。根据上面的例子,查询应该返回 MongoDB 中的 dict2 文档。
我该怎么查询呢?谢谢!
1 个回答
4
如果你想检查某个字段是否存在,那么你可以使用这个查询:
db.collection.find({"A.B.C.K.G.S":{"$exists":true}})
这里的 $exists
操作符 会返回所有包含这个字段的文档,即使这个字段的值是 null
(空值)。而如果你用不等于 null 来比较这个字段,就只会返回那些字段存在并且值不是 null 的文档。根据你的应用需求,你可以选择使用 $exists
或者进行 null 比较。