据我所知,mongodb不支持"加入"正如人们在关系数据库中发现的那样,但是我并不确定具体是什么意思。
这是否意味着你不能要求mongodb做出以下的平等:
SELECT p.name, j.title FROM person p, job j where p.p_id = j.j_id
或仅仅是因为它没有为您强制执行参照完整性?
我也希望了解这与链接("加入"?)集合有何关联。我相信该集合的_id引用应该像FK一样使用,但我不确定这是否依赖于提供相关代码来执行连接的应用程序,或者mongodb是否支持使用其本地语言查询
答案 0 :(得分:0)
您必须在多个查询中手动执行此操作。 MongoDB查询仅对一个集合进行操作,并且集合彼此独立。
答案 1 :(得分:0)
现在,您可以使用$ lookup在mongodb 3.2中的 unsharded 集合上执行左外部等连接。
{
$lookup:
{
from: <collection to join>,
localField: <field from the input documents>,
foreignField: <field from the documents of the "from" collection>,
as: <output array field>
}
}
有关详细信息,请参阅Mongodb $lookup。
但是,即使mongodb支持联接,它也是非关系型数据库,因此您不应在应用程序中频繁执行此类联接。您应该更喜欢嵌入此类文档。