2013-03-26 106 views
14

如何查詢全部{"module" : "B"}mongodb查詢子域

下面的查詢不起作用:

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} 
} 
+0

這是很奇怪的,文檔標識符(_id)字段 – ajduke 2013-03-26 08:40:13

回答

27

嘗試:

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

不同的是原始查詢將嘗試匹配對整個子文檔(即_id是一個子文檔,其中包含一個「模塊」字段,其值爲「B」而沒有其他)

參考:MongoDB Dot Notation

1

使用點表示法:

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

針對完全匹配的子文檔

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

查詢使用dot表示法來訪問字段在subdocument

Refference link

+1

您在B(或缺少一個e it)。 – tandrewnichols 2013-08-21 13:51:33