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

Użyj $lookup w tablicy obiektów

Możesz to zrobić za pomocą czegoś takiego w MongoDB 3.2, zakładając, że kolekcja zawierająca szczegóły to video.details a pole, do którego dołączasz z lewej strony, to _id :

[  
   {  
      $unwind:"$videos"
   },
   {  
      $lookup:{  
         from:"video.details",
         localField:"videos.videoId",
         foreignField:"_id",
         as:"details"
      }
   },
   {  
      $group:{  
         _id:"$_id",
         name:{  
            $first:"$name"
         },
         videos:{  
            $push:{  
               videoId:"$videos.videoId",
               videoDetails:"$details"
            }
         }
      }
   }
]

Więc w zasadzie wykonujesz wyszukiwanie, ale później, na etapie grupy $, budujesz dane wyjściowe tak, jak lubisz. możesz nie potrzebować pierwszego etapu $unwind, jeśli używasz MongoDB 3.3.4 lub nowszego (poprzednio nie zezwalano na wyszukiwanie $ w tablicach).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak skalować MongoDB?

  2. Jak zapewnić, że Twoje klastry MongoDB przetrwają przerwy w działaniu usługi Amazon AWS?

  3. PyMongo max_time_ms

  4. Mongodb nie może przeszukiwać dokumentu podrzędnego według identyfikatora (zwraca wartość null)

  5. Jak uzyskać informacje o użytkowniku z mongodb w node.js