Tushar sangani Ответов: 1

Как присоединиться к нескольким коллекциям, а также использовать предложение where в mongodb


у меня есть попытка преобразовать ниже sql запрос в mongodb запрос

select * from photographer as Ph inner join user as U on U.id=Ph.user_id inner join photographer_review as Pr on Pr.photographer_id=Ph.id inner join photographer_events as Pe on Pe.photographer_id=Ph.id inner  join event as E on E.id =Pe.event_id where (E.date <='22/05/2016' or E.date >='22/05/2016') and Ph.user_id='1' and maximum_distance='15'


Что я уже пробовал:

дБ.фотограф.совокупный([{
$совпадение: {
"функция user_id": жидкость,
"максимальное расстояние": {
$gte: mi
}
}
},
{
$поиск: {
от пользователей",
localField: "user_id",
иностранное поле: "_id",
как: "user_data",
}

},{
$поиск: {
от кого:"photographer_events",
местное поле: "_id",
foreignField: "photographer_id",
как: "photographer_event_data",
}
}, {$поиск:{
от кого: "photographer_review",
местное поле: "_id",
foreignField: "photographer_id",
как: "photographer_data", }
}], функция (err, ph_data) {})

я использую этот тип, но я не могу присоединиться к коллекции событий

пожалуйста помочь....

1 Ответов

Рейтинг:
1

lenakarthik

Попробуй вот так...

db.Order.aggregate([
   {
      $lookup:{
         from:"City",
         localField:"City Key",
         foreignField:"City Key",
         as:"lsg"
      }
   },
   {
      $unwind:"$lsg"
   },
   {
      $lookup:{
         from:"Employee",
         localField:"Salesperson Key",
         foreignField:"Employee Key",
         as:"lsg2"
      }
   },
   {
      $unwind:"$lsg2"
   },
   {
      $project:{
         "_id":1,
         "Employee":1,
         "Salesperson Key":1,
         "City":"$lsg.City"
      }
   }
]);