gpt4 book ai didi

mongodb - 如何在 MongoDB 中执行 SQL Join 等效操作?

转载 作者:太空宇宙 更新时间:2023-11-04 09:46:54 24 4
gpt4 key购买 nike

如何在 MongoDB 中执行 SQL Join 等效操作?

例如,假设您有两个集合(用户和评论),我想提取 pid=444 的所有评论以及每个集合的用户信息。

comments
{ uid:12345, pid:444, comment="blah" }
{ uid:12345, pid:888, comment="asdf" }
{ uid:99999, pid:444, comment="qwer" }

users
{ uid:12345, name:"john" }
{ uid:99999, name:"mia" }

有没有一种方法可以一次性提取某个字段的所有评论(例如 ...find({pid:444}) )以及与每个评论相关的用户信息?

目前,我首先获取符合我的条件的评论,然后找出该结果集中的所有 uid,获取用户对象,并将它们与评论的结果合并。看来我做错了。

最佳答案

从 Mongo 3.2 开始,这个问题的答案大多不再正确。添加到聚合管道中的新 $lookup 运算符本质上与左外连接相同:

https://docs.mongodb.org/master/reference/operator/aggregation/lookup/#pipe._S_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>
}
}

当然,Mongo 不是关系数据库,开发人员正在谨慎推荐 $lookup 的特定用例,但至少从 3.2 开始,现在可以使用 MongoDB 进行连接。

关于mongodb - 如何在 MongoDB 中执行 SQL Join 等效操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55313115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com