MongoDB匹配子子

时间:2015-11-13 02:04:13

标签: mongodb

假设我们有一个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})

或者什么,它会返回我给出的两个示例文档中的第一个。从本质上讲,我希望能够跳过一个或多个文档层,因为它们被一些任意字符串键入。

1 个答案:

答案 0 :(得分:0)

据我所知,即使它是肯定的(不是),也很难建立一个索引。因此这种查询会很慢。

你有没有使用数组的具体原因?

{
  "_id" : "959giwmgsr",
  "items" : [{
      "id": "id_kg384962",
      "value" : 9
  }]
}