我尝试使用$in
和$elemMatch
查询对象数组中匹配member_id
字段的所有对象,但都没有返回数据。示例查询:
db.events.find({"source_site":{"event_hosts":{$in:[{"member_id":12300113}]}}})
和
db.events.find({source_site:{event_hosts:{$elemMatch:{member_id:12300113}}}})
要在Mongo中查询的示例数据:
{
"_id" : ObjectId("541890c2660a17aa1f7b7bd4"),
"source_site" : {
"event_hosts" : [
{
"member_id" : 12300113,
"member_name" : "Sal Corthen"
},
{
"member_id" : 139930702,
"member_name" : "Erin Morgen"
}
]
}
}
我做错了什么?
答案 0 :(得分:2)
如果您想直接匹配member_id
,可以使用:
db.events.find({"source_site.event_hosts.member_id":12300113})
或使用$in
:
db.events.find({"source_site.event_hosts.member_id":{$in:[12300113]}})
或使用$elemMatch
:
db.events.find({"source_site.event_hosts":{$elemMatch:{"member_id":12300113}}})