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

MongoDB do korzystania z fragmentowania z operatorem agregacji $lookup

Jak wskazują cytowane przez Ciebie dokumenty, nie możesz użyć $lookup w kolekcji podzielonej na fragmenty. Dlatego najlepszym sposobem obejścia tego problemu jest samodzielne wykonanie wyszukiwania w osobnym zapytaniu.

  1. Wykonaj aggregate zapytanie.
  2. Przeciągnij wartości „localField” z wyników zapytania do tablicy, prawdopodobnie używając Array#map .
  3. Wykonaj find zapytanie względem kolekcji „z”, używając zapytania takiego jak {foreignField: {$in: localFieldArray}}
  4. Połącz swoje wyniki w dowolnym formacie.

Nie pozwól, aby $lookup ograniczenia powstrzymują Cię przed shardingiem kolekcji, które wymagają tego do skalowalności, po prostu wykonaj funkcję wyszukiwania samodzielnie.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zaktualizuj kolekcję MongoDB za pomocą $toLower

  2. MongoDB dropIndex()

  3. Użycie operatora $slice do pobrania ostatniego elementu tablicy

  4. MongoDB:Jak zaktualizować pojedynczy element podrzędny w tablicy, do którego odwołuje się indeks w tablicy?

  5. Jak ClusterControl wykonuje automatyczne odzyskiwanie bazy danych i przełączanie awaryjne?