mongoDB:如何检查嵌套字典中键的存在性?

2 投票
1 回答
4844 浏览
提问于 2025-04-18 06:47

我在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 比较。

撰写回答