So finden Sie ein Dokument nach eingebettetem Element in MongoDB PHP

Ich habe das nächste Dokument in MongoDB:

Wettbewerbsdokument:

{
 "_id": ObjectId("502aa915f50138d76d11112f7"),
 "contestname": "Contest1",  
 "description": "java programming contest", 
 "numteams": NumberInt(2),
 "teams": [
   {
    "teamname": "superstars",
    "userid1": "50247314f501384b011019bc",
    "userid2": "50293cf9f50138446411001c",
    "userid3": "50293cdff501384464110018"
   },

   {
    "teamname": "faculty",
    "userid1": "50247314f501384b0110100c",
    "userid2": "50293cf9f50138446410001b",
    "userid3": "50293cdff501384464000019"
   }
 ],
 "term": "Fall 2012"
}

Stellen Sie sich vor, ich habe mehr als dieses Dokument, in dem Benutzer sich registrieren können. Ich möchte alle Wettbewerbe finden, die ein Benutzer registriert hat. Ich habe so etwas bisher:

$id = "50247314f501384b011019bc";
$user = array('userid1' => $id, 'userid2' => $id, 'userid3' => $id );
$team = array('teams' => $user);            
$result =$this->collection->find($team);
return $result;

Könnte mir jemand dabei helfen?

Vielen Dank.

------ Gelöst ------

$team = array('$or' => array(array('teams.userid1' => $id),
               array('teams.userid2' => $id), 
               array('teams.userid3' => $id)
                 ));            

$result =$this->collection->find($team);

Antworten auf die Frage(1)

Ihre Antwort auf die Frage