【发布时间】:2021-09-27 23:02:03
【问题描述】:
您好,我正在寻找连接两个表中的数据
我要做的是使用查找在两个用户之间创建“朋友”关系,并找出每个朋友有多少电子邮件(如果发送了)
这里是一个 mongo DB 游乐场...我很接近,我只是不知道如何获取“其他用户”的电子邮件信息
我应该只看到来自 a 的朋友(b 和 c)的电子邮件,而不是从 a 发送的任何电子邮件
这个游乐场几乎做我想做的...
https://mongoplayground.net/p/KKocPm3fzEv
这是上述操场的输入
db={
"users": [
{
"_id": "a",
"email": "a@test.com",
},
{
"_id": "b",
"email": "b@test.com",
},
{
"_id": "c",
"email": "c@test.com",
}
],
"friends": [
{
"userId": "a",
"otherUserId": "b"
},
{
"userId": "a",
"otherUserId": "c"
},
],
"emailsSent": [
{
"userId": "a",
"number": "25"
},
{
"userId": "b",
"number": "3"
},
]
}
这是上述操场的输出
[
{
"_id": "a",
"a_myfriends": [
{
"_id": ObjectId("5a934e000102030405000002"),
"otherUserId": "b",
"userId": "a"
},
{
"_id": ObjectId("5a934e000102030405000003"),
"otherUserId": "c",
"userId": "a"
}
],
"email": "a@test.com",
"emailaddr": [
{
"_id": "b",
"email": "b@test.com"
},
{
"_id": "c",
"email": "c@test.com"
}
],
"emailsent": [
{
"_id": ObjectId("5a934e000102030405000001"),
"number": "3",
"userId": "b"
}
]
}
]
现在有三个信息数组...我如何将它们全部连接在一起,以便数组中的每个条目仅用于“那个”朋友?
这就是我想要的结果
{
"_id": "a",
"a_myfriends": [
{
"otherUserId": "b",
"email": "b@test.com",
"number": "3"
},
{
"otherUserId": "c",
"email": "c@test.com"
}
]
}
注意:我尝试连接本文中的联合,但由于用户 ID 的差异(例如 _id 和 userId),我认为它不起作用
MongoDB: Combine data from multiple collections into one..how?
【问题讨论】: