如何在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'
}
}
])