Mongodb Mongo:查询数组内的对象

Mongodb Mongo:查询数组内的对象,mongodb,mongodb-query,Mongodb,Mongodb Query,我已经尝试使用$in和$elemMatch来查询对象数组中与成员id字段匹配的所有对象,它们都没有返回数据。示例查询: db.events.find({"source_site":{"event_hosts":{$in:[{"member_id":12300113}]}}}) 及 要在Mongo中查询的示例数据: { "_id" : ObjectId("541890c2660a17aa1f7b7bd4"), "source_site" : { "event_ho

我已经尝试使用
$in
$elemMatch
来查询对象数组中与
成员id
字段匹配的所有对象,它们都没有返回数据。示例查询:

db.events.find({"source_site":{"event_hosts":{$in:[{"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"
            }
        ]
    }
}

我做错了什么?

如果要直接匹配
成员id
,可以使用:

db.events.find({“source\u site.event\u hosts.member\u id”:12300113})
或在中使用
$

db.events.find({“source_site.event_hosts.member_id:{$in:[12300113]})
或使用
$elemMatch

db.events.find({“source_site.event_hosts”:{$elemMatch:{“member_id”:12300113}})
{
    "_id" : ObjectId("541890c2660a17aa1f7b7bd4"),
    "source_site" : {
        "event_hosts" : [
            {
                "member_id" : 12300113,
                "member_name" : "Sal Corthen"
            },
            {
                "member_id" : 139930702,
                "member_name" : "Erin Morgen"
            }
        ]
    }
}