假设我们有一个MongoDB集合,其中包含
之类的项目{
"_id" : "f239tmmls03",
"items" : {
"id_0mgq95k3t" : {
"value" : 591
},
"id_95jf3156w" : {
"value" : 12
}
}
}
{
"_id" : "959giwmgsr",
"items" : {
"id_kg384962" : {
"value" : 9
}
}
}
这样的事情。有没有一种简单的方法,例如,搜索具有一个或多个具有给定值的项目的文档?例如,像
这样的查询db.the_collection.find({"items.?.value" : 12})
或者什么,它会返回我给出的两个示例文档中的第一个。从本质上讲,我希望能够跳过一个或多个文档层,因为它们被一些任意字符串键入。
答案 0 :(得分:0)
据我所知,即使它是肯定的(不是),也很难建立一个索引。因此这种查询会很慢。
你有没有使用数组的具体原因?
{
"_id" : "959giwmgsr",
"items" : [{
"id": "id_kg384962",
"value" : 9
}]
}