2013-03-26 3 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

답변

27

시도 :

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

의 차이는 원래 쿼리가 전체에 일치하도록 노력 할 것입니다 subdocument (즉, _id는 "B"값을 가진 "module"필드를 포함하는 하위 문서이며 다른 것은 없습니다)

참조 :

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

하위 문서

에 정확히 일치하는 MongoDB Dot Notation

1

를 사용하여 점 표기법 :

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

쿼리는 subdocument에 액세스 필드 dot 표기법을 사용

이것은 매우 이상한입니다

Refference link

+1

당신은 거기에 여분의 견적을 가지고 B (또는 빠진 하나 befor 그것). – tandrewnichols