Reputation: 2733
I've tried using $in
and $elemMatch
to query for all objects matching member_id
field within an object array, neither are returning data. Example queries:
db.events.find({"source_site":{"event_hosts":{$in:[{"member_id":12300113}]}}})
and
db.events.find({source_site:{event_hosts:{$elemMatch:{member_id:12300113}}}})
Sample data to query in Mongo:
{
"_id" : ObjectId("541890c2660a17aa1f7b7bd4"),
"source_site" : {
"event_hosts" : [
{
"member_id" : 12300113,
"member_name" : "Sal Corthen"
},
{
"member_id" : 139930702,
"member_name" : "Erin Morgen"
}
]
}
}
What am I doing wrong?
Upvotes: 0
Views: 92
Reputation: 12904
If you want to match a member_id
directly, you can use:
db.events.find({"source_site.event_hosts.member_id":12300113})
or using $in
:
db.events.find({"source_site.event_hosts.member_id":{$in:[12300113]}})
or using $elemMatch
:
db.events.find({"source_site.event_hosts":{$elemMatch:{"member_id":12300113}}})
Upvotes: 2