我必须在MongoDB中找到所有包含“ p396:branchCode”作为键的文档。值无所谓,可以是任何东西。我尝试使用
{"p396:branchCode": new RegExp(".*")}
在MongoVUE中,但我什么也没发现。我的数据库非常嵌套,branchCode具有超键“ p396:checkTellersEApproveStatus”
您的密钥嵌套在超级密钥下,因此您需要使用点运算符:
{"p396:checkTellersEApproveStatus.p396:branchCode": {$exists: true}}
这假定p396:branchCode
始终处于p396:checkTellersEApproveStatus
。如果不是这种情况,您就会遇到问题,因为MongoDB不允许对未知密钥进行查询。当可能的超级键数量很少时,您可以使用$ or-operator查询所有它们。否则,您唯一的选择是将对象重构为数组。举个例子,这样的结构:
properties: {
prop1: "value1",
prop2: "value2",
prop3: "value3"
}
当看起来像这样时,在任意键下查询值将容易得多:
properties: [
{ key: "prop1", value:"value1"} ,
{ key: "prop2", value:"value2"},
{ key: "prop3", value:"value3"}
]
因为你可以做 db.collection.find({"properties.value":"value2"})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句