gpt4 book ai didi

mongodb - 如何在 mongodb 中执行 Stringify id 和 ObjectId 之间的 $lookup?

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

场景

我必须对名为 collegestudent 的 2 个集合执行连接。我正在使用 MongoDB 3.4。这里,college 有一个名为 studentId 的字段,它引用了 student 集合的 _id。问题是,studentId 已经以字符串形式存储,而 _id 是 ObjectId。

example of studentId: "5910193d4c00000a01c2c615"

example of _id: ObjectId("59a931696d00007c0962e24a")

因此,当我尝试遵循加入查询时:

db.college.aggregate(
{
$lookup: {
from: "student",
localField: "studentId",
foreignField: "_id",
as: "Related"
}
})

它不起作用,因为 localField studentIdforeignField _id 是不同的类型。那么,是否有某种方法可以将 studentId 转换/与 _id 进行比较,以便可以执行连接操作?

最佳答案

意图:

college(studentId)  --- > student (_id)
string ----> ObjectId


we need to convert to ObjectId

db.college.aggregate([
{
"$addFields": {
"newStudentId" : { "$toObjectId": "$studentId" }
}
},{
$lookup: {
from: "student",
localField: "newStudentId",
foreignField: "_id",
as: "Related"
}
}])

关于mongodb - 如何在 mongodb 中执行 Stringify id 和 ObjectId 之间的 $lookup?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45998951/

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