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

MongoDB:Как да намерите документ по идентификатор във вложен документ

Използвайте нотация с точки:

Когато полето съдържа вграден документ, заявката може или да посочи точно съвпадение във вградения документ, или да посочи съвпадение чрез отделни полета във вградения документ, използвайки нотацията с точки.

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
})

Ако трябва да изведете само частта от масив, където имате своя _id, трябва да използвате долар в проекцията

Позиционният оператор $ ограничава съдържанието на резултатите от заявката, за да съдържа само първия елемент, съответстващ на документа на заявката.

и вашата заявка ще изглежда така:

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
}, {
   "accounts.$.": 1
})

P.S. ако имате нужда от изхода, както във вашите модифицирани въпроси, използвайте това:

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
 }, {
   accounts : 0
 })


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да конфигурирам AppArmor за комплекти реплики на MongoDB?

  2. Множество групови операции, използващи рамката за агрегиране на Mongo

  3. Таблица за представяне за MongoDB

  4. Запитване на вградени обекти в Mongoid/rails 3 (по-ниски от, Min оператори и сортиране)

  5. MongoDB Aggregation:Как да получите общия брой записи?