是否可以在Mongodb中的两个数据库之间进行$ lookup聚合?

时间:2016-08-30 08:48:03

标签: mongodb mongodb-query mongodb-aggregation

我试图做这样的事情:

use user; 

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

userorganization位于两个不同的数据库中。

如果无法做到这一点,有哪些替代方案?

2 个答案:

答案 0 :(得分:11)

  

是否可以在两个数据库之间进行$ lookup聚合   mongodb的?

无法在两个不同的数据库中使用查询进行查询。 mongodb中的$lookup支持在同一个数据库中对一个未加深的集合执行左外连接。

{
   $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()

参考 - MongoDB cross database query

答案 1 :(得分:0)

是的,请阅读以下 mongodb 文档:

在 Atlas Data Lake 中,$lookup 可用于执行来自不同数据库的集合的连接。

https://docs.mongodb.com/datalake/reference/pipeline/lookup-stage

相关问题