javascript - MongoDB 试图通过 id 来处理两个表 - 无法做到这一点
问题描述
我的数据库中有两个表。
teams
桌子:
[
{
"users": [
{ "id": '5f9971e6f4f60959c0668896', "role": 'admin' },
{ "id": '5fb11570ece5672ba95850ee', "role": 'read' }
],
"_id": '5fb0f993795d1634d4e486dc',
"name": 'team1'
},
{
"users": [
{ "id": '5fb11570ece5672ba95850ee', "role": 'admin' }
],
"_id": "5fb0f993795d1634d4e48fed",
"name": 'team2'
}
]
users
桌子:
[
{
"_id" : ObjectId("5f9971e6f4f60959c0668896"),
"firstname" : "foo",
"lastname" : "bar"
},
{
"_id" : ObjectId("5fb11570ece5672ba95850ee"),
"firstname" : "hey",
"lastname" : "you"
},
{
"_id" : ObjectId("5fb11570ece5672ba95grs0"),
"firstname" : "12",
"lastname" : "34"
}
]
我想得到的是:
{
users:
[
{ id: '5f9971e6f4f60959c0668896',firstname: "foo",lastname: "bar", role: 'admin' },
{ id: '5fb11570ece5672ba95850ee',firstname: "hey",lastname: "you", role: 'read' }
],
_id: 5fb0f993795d1634d4e486dc,
name: 'team1'
}
我试图解决这个一周,但我没有找到解决方案。
Teams.aggregate([
{
$lookup: {
from: "users",
localField: "_id",
foreignField: "users.id",
as: "users",
},
},
]).then((data) => {
console.log("data", data);
});
tnx 寻求帮助
解决方案
您的团队集合 users.id 也需要是 ObjectId ,而不是字符串 ... ,或者您需要将用户集合 _id 更改为字符串 ...
推荐阅读
- python - 图像未使用 django 从数据库加载到网页上
- typescript - TS2307 - 如何在 Angular 9 中使用我自己的库?
- java - 有没有办法以字符串格式从 XML 文件中获取查询?
- sql - 根据另一列中的存在更新列
- security - OAuth2 流程:通过重定向发送身份验证代码的原因
- mysql - xcom_push 总是抛出 Invalid utf8mb4 字符串警告 - Airflow 1.10.9
- ios - 如何在 iOS 的 AV 播放器中设置自定义标题
- javascript - 如何根据其他循环中的变量创建定时循环?
- python - 使用 Python Selenium 下载文件
- angular - 在 Angular/Typescipt 中,通用调用和 .. as Casting 之间有什么区别?特别是对于 HttpClient