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

Utilisation de la fonction MongoDB .findOne() avec une valeur de document imbriquée

Lors de la comparaison avec un tableau, si vous spécifiez la requête comme ceci :

{ exercises: { _id: exerciseID } }

MongoDB essaie de faire un correspondance exacte sur le document . Donc, dans ce cas, MongoDB ne ferait correspondre que les documents dans les exercises tableau de la forme exacte { _id: ObjectId("...") } . Parce que les documents dans les exercises avoir d'autres champs, cela ne produira jamais de correspondance, même si le _id s sont les mêmes.

Ce que vous voulez faire à la place est interroger un champ des documents du tableau . Le document de requête complet ressemblerait alors à ceci :

{
  user: user.id,
  "exercises._id": exerciseID
}