2013-03-26 19 views
14

{"module" : "B"} sorgulamak için nasıl?mongodb sorguya göre alt alan

şu sorgu çalışmaz:

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

Teşekkür bir ton!

veri yok gibi görünüyor:

{ 
    "_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

, doküman kimliği (_id) alanı – ajduke

cevap

27

Dene:

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

fark orijinal sorgusu o entire üzerinde maç çalışıyor olurdu olduğunu alt belge (yani _id "B" değerine sahip bir "modül" alanı içeren bir alt belgedir ve başka hiçbir şey yoktur)

Referans:

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

alt belge

üzerinde Tam eşleme için MongoDB Dot Notation

1

Kullanım nokta gösterimde:

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

sorgu subdocument erişim alanlarına dot notasyonu kullanır:

Bu çok garip olduğunu

Refference link

+1

B'den sonra ekstra bir teklifiniz var. e). – tandrewnichols