2016-08-30 1 views
4

Я пытаюсь сделать что-то вроде этого:

use user; 

db.user.aggregate([ 
    { 
     $lookup: 
     { 
      from: "organization.organization", 
      localField: "organizationId", 
      foreignField: "uuid", 
      as: "user_org" 
     } 
    } 
]) 

user и organization находятся в двух разных базах данных.

Если это невозможно, какие альтернативы?

ответ

4

Можно ли сделать агрегацию $ подстановок между двумя базами данных в MongoDB?

Невозможно запросить использование поиска в двух разных версиях. $lookup Поддержка mongodb Выполняет левое внешнее соединение в незащищенной коллекции в той же базе данных.

{ 
    $lookup: 
    { 
     from: <collection to join>, 
     localField: <field from the input documents>, 
     foreignField: <field from the documents of the "from" collection>, 
     as: <output array field> 
    } 
} 

Мы можем использовать getSibling("dbname") запросить другой БД из одной БД

db.getSiblingDB('test').foo.find() 

Reference - MongoDB cross database query

+1

О порядке. Но как я буду использовать этот брат в db в агрегации? Возможно ли это? –

+0

Невозможно использовать сиблинг в агрегации. –