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

Zapytanie MongoDB w zagnieżdżonej tablicy

Jak tylko grasz przeciwko jednemu pole, musisz tylko podać ścieżkę do swojego pola za pomocą notacji kropkowej:

> db.user.find({"profile.wishlist._id": 2})

Jak wyjaśniono w Dokumentacja MongoDB , dla tablic (takich jak wishlist ) dopasuje dokument, jeśli jakikolwiek poddokument w tablicy odpowiada wartości pola.

Pamiętaj, że jeśli chcesz dopasować się do kilku pola, musisz użyć:

  • $elemMatch czy wszystkie pasujące pola powinny należeć do tego samego poddokument;
  • lub wiele pól wyrażonych za pomocą notacji kropkowej, jeśli różne pola nie muszą być zgodne z tym samym dokumentem podrzędnym.

Porównaj wyniki tych dwóch zapytań, aby to zrozumieć:

> db.user.find({"profile.wishlist._id": 2, "profile.wishlist.name": "a1"})
//                                      ^                            ^^
//                              will return your document even if the was no 
//                              subdocument having both _id=2 and name=a1
> db.user.find({"profile.wishlist": {$elemMatch: { _id: 2, name: "a1"}}})
//                                                      ^         ^^
//                                         no result as there was no subdocument
//                                         matching  _both_ _id=2 and name=a1



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Konwertuj warunki kreatora zapytań na operacje MongoDB, w tym zagnieżdżoną tablicę poddokumentów

  2. MongoDB:nie udało się skonfigurować gniazd podczas uruchamiania

  3. MongoDB $pullAll

  4. Załaduj dane Spark do Mongo / Memcached do użytku przez usługę internetową

  5. Jak zwrócić poddokumenty z obiektu w tablicy z Meteor i MongoDB?