sql >> Database teknologi >  >> NoSQL >> MongoDB

Brug af MongoDB .findOne() funktion med indlejret dokumentværdi

Når du matcher mod et array, hvis du angiver forespørgslen sådan her:

{ exercises: { _id: exerciseID } }

MongoDB forsøger at lave en nøjagtig match på dokumentet . Så i dette tilfælde ville MongoDB kun matche dokumenter i exercises matrix med den nøjagtige form { _id: ObjectId("...") } . Fordi dokumenter i exercises har andre felter, vil dette aldrig give et match, selvom _id s er de samme.

Det du vil gøre i stedet er forespørg på et felt af dokumenterne i arrayet . Det komplette forespørgselsdokument ville så se sådan ud:

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


  1. Android Studio:opretter forbindelse til MongoDB-server med Mongo Java Driver

  2. Reducer score i Redis eller fjern hvis 0

  3. $nær kræver geojson-punkt, givet geojson-punkt

  4. Sådan indstilles udløb til flere nøgler i Redis