sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan finder du et dokument efter indlejret element i MongoDB PHP

Din datastruktur er akavet at forespørge på, fordi du har en række indlejrede dokumenter. Med en lille ændring af dataene kan du gøre dette lettere at arbejde med.

Jeg har indsat bruger-id'erne i et array:

{
 "contestname": "Contest1",  
 "description": "java programming contest", 
 "numteams": 2,
 "teams": [
   {
    "teamname": "superstars",
    "members": [
        "50247314f501384b011019bc",
        "50293cf9f50138446411001c",
        "50293cdff501384464110018"
    ]
   },

   {
    "teamname": "faculty",
    "members": [
        "50247314f501384b0110100c",
        "50293cf9f50138446410001b",
        "50293cdff501384464000019"
    ]
   }
 ],
 "term": "Fall 2012"
}

Du kan derefter gøre PHP-ækvivalenten find() til:

db.contest.find(
        {'teams.members':'50247314f501384b011019bc'},
        {'contestname':1, 'description':1}
    )

Hvilket ville returnere de matchende konkurrencer, som denne bruger havde deltaget i:

{
    "_id" : ObjectId("502c108dcbfbffa8b2ead5d2"),
    "contestname" : "Contest1",
    "description" : "java programming contest"
}
{
    "_id" : ObjectId("502c10a1cbfbffa8b2ead5d4"),
    "contestname" : "Contest3",
    "description" : "Grovy programming contest"
}



  1. multipel dokumenttransaktion virker ikke i c# ved hjælp af mongodb 4.08 community server

  2. MongoDB NodeJS Native Driver(mongodb) vs Mongo Shell Performance

  3. MongoDB synkroniserer udviklings- og produktionsdatabaser

  4. Automatisering og styring af Open Source-databaser i skyen - annoncerer ClusterControl 1.6