32

如何查询全部{"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}
}
4

3 回答 3

57

尝试:

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

不同之处在于您的原始查询将尝试匹配整个子文档(即,_id 是包含值为“B”的“模块”字段的子文档,仅此而已)

参考:MongoDB 点表示法

于 2013-03-26T08:38:22.523 回答
2

使用点符号:

db.XXX.find({ "_id.module" : "B" })
于 2013-03-26T08:38:01.763 回答
2

对于子文档的精确匹配

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

查询使用dot符号来访问 a 中的字段subdocument

参考链接

于 2013-03-26T08:44:25.570 回答