我试图做这样的事情:
use user;
db.user.aggregate([
{
$lookup:
{
from: "organization.organization",
localField: "organizationId",
foreignField: "uuid",
as: "user_org"
}
}
])
user
和organization
位于两个不同的数据库中。
如果无法做到这一点,有哪些替代方案?
答案 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()
答案 1 :(得分:0)
是的,请阅读以下 mongodb 文档:
在 Atlas Data Lake 中,$lookup
可用于执行来自不同数据库的集合的连接。
https://docs.mongodb.com/datalake/reference/pipeline/lookup-stage