MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Използване на функция MongoDB .findOne() с вложена стойност на документ

При съпоставяне с масив, ако посочите заявката по този начин:

{ exercises: { _id: exerciseID } }

MongoDB се опитва да направи точно съвпадение в документа . Така че в този случай MongoDB ще съответства само на документи в exercises масив с точната форма { _id: ObjectId("...") } . Тъй като документите в exercises имат други полета, това никога няма да доведе до съвпадение, дори ако _id s са еднакви.

Това, което искате да направите вместо това, е заявка за поле от документите в масива . Тогава пълният документ на заявката ще изглежда така:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Времево клеймо на MongoDb

  2. Как да попълните mongoose с голям набор от данни

  3. Хибриден облак срещу пълен публичен облак - плюсове и минуси

  4. Как правилно да направите масово upsert/update в MongoDB

  5. Агрегираният проект на MongoDB връща масив от _id