在 Mongo 中,如何找到具有给定键和值的所有文档,无论该键出现在文档的键/值层次结构中的哪个位置?
例如,输入键 roID
和值 5
将同时匹配:
{
roID: '5'
}
和
{
other: {
roID: '5'
}
}
最佳答案
没有内置方法可以做到这一点。您可能必须递归扫描每个匹配的文档才能尝试找到该属性。 不推荐。您可能需要考虑重组数据或将其处理为更统一的格式,以便更容易(更快)查询。
如果您想要的 key 出现在固定数量的不同位置,您可以使用 $or
运算符来扫描所有可能性。
以您的示例文档为例,您的查询将如下所示:
db.data.find( { "$or": [
{ "roID": 5 },
{ "other.roID": 5 },
{ "foo.bar.roID": 5 },
{ any other possbile locations of roID },
...
] } )
关于mongodb - 在 Mongo 对象层次结构中的任何位置查询具有值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25970625/