sql >> Database >  >> NoSQL >> MongoDB

MongoDB gebruiken .findOne() functie met geneste documentwaarde

Als u bij het matchen met een array de query als volgt specificeert:

{ exercises: { _id: exerciseID } }

MongoDB probeert een exacte overeenkomst op het document . Dus in dit geval zou MongoDB alleen documenten matchen in de exercises array van de exacte vorm { _id: ObjectId("...") } . Omdat documenten in de exercises andere velden heeft, zal dit nooit een overeenkomst opleveren, zelfs niet als de _id s zijn hetzelfde.

Wat u in plaats daarvan wilt doen, is een veld van de documenten in de array opvragen . Het volledige zoekdocument ziet er dan als volgt uit:

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


  1. Hoe in Jongo meerdere documenten van Mongodb te vinden door middel van een lijst met ID's

  2. In NodeJS, hoe resultaten van mongodb met verschillende veldnamen uit te voeren?

  3. mangoest update:$inc werkt niet in upsert

  4. MongoDb - Een array opvragen