MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB :Comment rechercher par ID de sous-document ?

Dans votre document :

"players": [
            {
                "player": { "$oid": "4" },
                "score": 500,
            },
            {
                "player": { "$oid": "5" },
                "score": 550,
            }
        ]

Le player champ dans la collection intégrée de players est un identifiant BSON (c'est-à-dire qu'il ressemble à quelque chose comme ObjectId("4e208e070347a90001000008") ), donc je pense que vous devriez structurer votre requête comme suit :

db.games.find( { "teams.players.player": ObjectId("2") } )

Remarque, j'ai supprimé le _id - à condition que cela fonctionne dans une console mongo, je soupçonne que la requête Coffee sera similaire (supprimez le _id portion).