MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verwendung der MongoDB-Funktion .findOne() mit verschachteltem Dokumentwert

Beim Abgleich mit einem Array, wenn Sie die Abfrage wie folgt angeben:

{ exercises: { _id: exerciseID } }

MongoDB versucht, einen genaue Übereinstimmung im Dokument . In diesem Fall würde MongoDB also nur Dokumente in den exercises abgleichen Array der exakten Form { _id: ObjectId("...") } . Denn Dokumente in den exercises andere Felder haben, wird dies niemals zu einer Übereinstimmung führen, selbst wenn die _id s sind gleich.

Was Sie stattdessen tun möchten, ist fragt ein Feld der Dokumente im Array ab . Das vollständige Abfragedokument würde dann so aussehen:

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