Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MongoDB聚合查询中连接来自不同数据库的两个集合?_Mongodb_Mongodb Query_Aggregation Framework - Fatal编程技术网

如何在MongoDB聚合查询中连接来自不同数据库的两个集合?

如何在MongoDB聚合查询中连接来自不同数据库的两个集合?,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我在两个不同的数据库中有两个集合[编辑]。称之为collection\u a和collection\u b 收集文件 收集文件 如何使用collection\u b中的$lookup从collection\u a获取name? 尝试下面的方法,但我看不到结果 db.collection_b.aggregate([ { $lookup: { from: 'collection_a', localField: 'parentId',

我在两个不同的数据库中有两个集合[编辑]。称之为
collection\u a
collection\u b

收集文件

收集文件

如何使用
collection\u b
中的$lookup从
collection\u a
获取
name
? 尝试下面的方法,但我看不到结果

db.collection_b.aggregate([
      {
   $lookup:
     {
       from: 'collection_a',
       localField: 'parentId',
       foreignField: '_id',
       as: 'name'
     }
}
])



仅当两个集合位于同一数据库中时,查找才起作用


尝试了您的示例,效果很好,二进制数据不是一个issuelet me检查,在我的例子中,
collection\u a
collection\u b
位于同一mongodb服务器中的不同数据库中。我想,这就是问题所在。。让我仔细检查一下是的,您不能运行cross db aggregationagree,另一种方法是以编程方式运行。
{
    "_id": {
        "$binary": {
           "base64": "DT+2QXMycUuX1xLdiFNO5w==",
            "subType": "03"
        }
    },
    "parentId": {
        "$binary": {
            "base64": "y5tcYX6t3kCCUHJtFF+RHg==",
            "subType": "03"
        }
    },
    "Status": "Completed",
    "Progress": {
        "$numberDouble": "100"
    }
}
db.collection_b.aggregate([
      {
   $lookup:
     {
       from: 'collection_a',
       localField: 'parentId',
       foreignField: '_id',
       as: 'name'
     }
}
])