通过子字段查询mongodb

时间:2013-03-26 08:34:02

标签: mongodb mongodb-query

如何查询所有{"module" : "B"}

以下查询不起作用:

db.XXX.find({ "_id" : { "module" : "B" } });

非常感谢!

数据看起来像:

{
  "_id" : {"module" : "A","date" : ISODate("2013-03-18T07:00:00Z")},
  "value" : {"count" : 1.0}
}

{
  "_id" : {"module" : "B","date" : ISODate("2013-03-18T08:00:00Z")},
  "value" : {"count" : 2.0}
}

3 个答案:

答案 0 :(得分:41)

尝试:

db.XXX.find({ "_id.module" :  "B" });

不同之处在于您的原始查询将尝试匹配整个子文档(即_id是包含值为“B”的“模块”字段的子文档,并且没有其他内容)

参考:MongoDB Dot Notation

答案 1 :(得分:1)

使用点符号:

db.XXX.find({ "_id.module" : "B" })

答案 2 :(得分:1)

对于Subdocument的完全匹配

    db.bios.find(
   {
     '_id.module': 'B'
   }
)

该查询使用dot表示法访问subdocument中的字段:

Refference link