gpt4 book ai didi

mongodb - $lookup 无法在 mongodb 中显示不相关的记录

转载 作者:可可西里 更新时间:2023-11-01 10:37:39 24 4
gpt4 key购买 nike

我正在尝试对两个表使用 $lookup 但在查找之后我也得到了不相关的记录。

表用户

{"_id" : ObjectId("5c1f5fe31e11011268006aa7"),"name" : "v","email" : "v@gmail.com"},
{"_id" : ObjectId("5c1f5fd31e11011268006aa6"),"name" : "r","email" : "r@gmail.com",}

餐 table 预订

schema like 
(student_id: { type: Schema.Types.ObjectId, ref: 'users' },
teacher_id: { type: Schema.Types.ObjectId, ref: 'users' })

{
"_id" : ObjectId("5c1f642aa6fb4511a0511e41"),
"student_id" : ObjectId("5c1f5fd31e11011268006aa7"),
"createdAt" : ISODate("2018-12-23T16:02:10.179+05:30"),
"updatedAt" : ISODate("2018-12-23T16:02:10.179+05:30"),
"__v" : 0,
}

$查找

db.bookings.aggregate(
{
$lookup:
{
from: "users",
localField: "ObjectId(student_id)",
foreignField: "ObjectId(_id)",
as: "student_info"
}
}
)

结果我得到了两个用户

{
"_id": "5c1f642aa6fb4511a0511e41",
"student_id": "5c1f5fd31e11011268006aa7",
"teacher_id": "5c1f5fe31e11011268006aa6",
"createdAt": "2018-12-23T10:32:10.179Z",
"updatedAt": "2018-12-23T10:32:10.179Z",
"__v": 0,
"student": [
{
"_id": "5c1f5fd31e11011268006aa6",
"name": "r",
"email": "a@gmail.com"
},
{
"_id": "5c1f5fe31e11011268006aa7",
"name": "v",
"email": "v@gmail.com"
}
]
}

但是如果我使用 localField: "student_id", ForeignField: "_id", 在查找时我得到的是空白的 student_info 数组

最佳答案

localFieldforeignField 是文档本身的字段。 您使用的 ("ObjectId(student_id)") 只是一个字符串,文档中不存在任何具有该名称的字段。

db.bookings.aggregate(
{
$lookup:
{
from: "users",
localField: "student_id",
foreignField: "_id",
as: "student_info"
}
}
)

关于mongodb - $lookup 无法在 mongodb 中显示不相关的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53967451/

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