MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB:Jak znaleźć dokument według identyfikatora w zagnieżdżonym dokumencie

Użyj notacji kropkowej:

Gdy pole zawiera osadzony dokument, zapytanie może albo określić dokładne dopasowanie w osadzonym dokumencie, albo określić dopasowanie według poszczególnych pól w osadzonym dokumencie za pomocą notacji kropkowej.

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

Jeśli chcesz wypisać tylko część tablicy, w której masz swój _id, musisz użyć dolara w projekcji

Pozycyjny operator $ ogranicza zawartość z wyników zapytania tak, aby zawierała tylko pierwszy element pasujący do dokumentu zapytania.

Twoje zapytanie wyglądałoby tak:

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

PS jeśli potrzebujesz wyniku takiego jak w zmodyfikowanych pytaniach, użyj tego:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Uwzględnij wszystkie istniejące pola i dodaj nowe pola do dokumentu

  2. Wstawianie dużej tablicy obiektów w mongodb z nodejs

  3. Wprowadzenie do serwera Percona dla MongoDB 4.2

  4. Użyj „MongoMappingContext#setAutoIndexCreation(boolean)” lub zastąp „MongoConfigurationSupport#autoIndexCreation()”, aby być jawnym

  5. Zapytanie Mongodb z polami w tych samych dokumentach