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

Използвайте $lookup в масив от обекти

Можете да го направите с нещо подобно в MongoDB 3.2, ако приемем, че колекцията, която съдържа подробностите, е video.details и полето, към което се присъединявате отляво, е _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"
            }
         }
      }
   }
]

Така че основно правите вашето търсене, но по-късно в $group етап изграждате изхода по начина, по който ви харесва. може да не се нуждаете от първия етап на $unwind, ако използвате MongoDB 3.3.4 или по-нова версия (преди това $lookup на масиви не беше разрешено).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose find() RegExp за полето тип номер

  2. Неуспешни предварително компилирани активи на Heroku

  3. MongoDB list Collections филтър

  4. Mongo UUID Тип 03 вместо 04 от mongo shell

  5. Вземете отделни стойности от масива въз основа на условията в масива