Выберите и покажите сбор данных 2 mongodb php

0

У меня есть две коллекции "кампании" и "посадочные места".

кампании

——————————————————————————————
'campaign_id' |'campaign_name'
——————————————————————————————
     1        |  Campaign 1
     2        |  Campaign 2

landingpages

—————————————————————————————————
'campaign_id' |'landingpage_name'
—————————————————————————————————
     1        |  Landing 1
     2        |  Landing 2

Я хочу выбрать и показать сборку формы данных 2 (такой же запрос соединения в sql)

——————————————————————————————————
'landingpage_name'|'campaign_name'
——————————————————————————————————
    'Landing 1'   | 'Campaign1'
    'Landing 2'   | 'Campaign2'
Теги:

2 ответа

0

Как говорит Филипп, MongoDB не делает JOINs. +info Вам нужно выполнить соединение на уровне приложения или выполнить итерацию с помощью javascript в оболочке mongodb:

db.campaigns.find().forEach(

  function(doc){
    db.landingpages.find({campaign_id:doc.campaign_id},{landingpage_name:1}).forEach(

      function(doc2){  
        print(doc.campaign_id,doc.campaign_name,doc2.landingpage_name); 
      }

    )
  }

)
  • 0
    Спасибо Гонсалес. Но я кодирую php. Вы можете конвертировать JavaScript в PHP?
0

MongoDB не делает JOINs - период. Когда вам нужно сопоставить данные из двух разных коллекций, вам необходимо выполнить соединение на уровне приложения.

Сначала запросите первую коллекцию.

Затем перебираем результаты и запрашиваем вторую коллекцию с результатом первого запроса.

  • 0
    Спасибо, Филипп. Вы пишете пример кода здесь? Если вы используете петлю. если я хочу выбрать 10 коллекций и цикл 10 коллекций? это хорошо для производительности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню