आपकी डेटा संरचना क्वेरी करने के लिए अजीब है क्योंकि आपके पास एम्बेडेड दस्तावेज़ों की एक सरणी है। डेटा में थोड़े से बदलाव से आप इसके साथ काम करना आसान बना सकते हैं।
मैंने उपयोगकर्ता आईडी को एक सरणी में रखा है:
{
"contestname": "Contest1",
"description": "java programming contest",
"numteams": 2,
"teams": [
{
"teamname": "superstars",
"members": [
"50247314f501384b011019bc",
"50293cf9f50138446411001c",
"50293cdff501384464110018"
]
},
{
"teamname": "faculty",
"members": [
"50247314f501384b0110100c",
"50293cf9f50138446410001b",
"50293cdff501384464000019"
]
}
],
"term": "Fall 2012"
}
फिर आप PHP के समकक्ष find() कर सकते हैं। के लिए:
db.contest.find(
{'teams.members':'50247314f501384b011019bc'},
{'contestname':1, 'description':1}
)
जो इस उपयोगकर्ता द्वारा दर्ज की गई मेल खाने वाली प्रतियोगिताओं को लौटाएगा:
{
"_id" : ObjectId("502c108dcbfbffa8b2ead5d2"),
"contestname" : "Contest1",
"description" : "java programming contest"
}
{
"_id" : ObjectId("502c10a1cbfbffa8b2ead5d4"),
"contestname" : "Contest3",
"description" : "Grovy programming contest"
}