sql >> Databasteknik >  >> NoSQL >> MongoDB

Använder MongoDB .findOne()-funktionen med kapslat dokumentvärde

När du matchar mot en array, om du anger frågan så här:

{ exercises: { _id: exerciseID } }

MongoDB försöker göra en exakt matchning på dokumentet . Så i det här fallet skulle MongoDB bara matcha dokument i exercises array av den exakta formen { _id: ObjectId("...") } . Eftersom dokument i exercises har andra fält kommer detta aldrig att ge en matchning, även om _id s är desamma.

Det du istället vill göra är fråga ett fält av dokumenten i arrayen . Det fullständiga frågedokumentet skulle då se ut så här:

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


  1. Det gick inte att lösa löftesavvisning och skicka array som svar

  2. Node.js - Session kvarstår inte genom res.redirect()

  3. Skriva ut ett MongoDB-datum från PHP

  4. MongoDB:Hur laddar man in samling med kapslad array i C#?