gpt4 book ai didi

mongodb - 如何在 $lookup Mongodb 的 LocalField 中将字符串转换为 objectId

转载 作者:IT老高 更新时间:2023-10-28 13:08:44 26 4
gpt4 key购买 nike

我想在 mongodb 中使用 $lookup 添加连接集合。我正在尝试如下

{
$lookup:{
from:"User",
localField:"assignedId",
foreignField:"_id",
as:"dataa"}
}

现在我有两个系列

User 包含 objectid 的用户,例如 "_id": ObjectId("56ab6663d69d2d1100c074db"),

Tasks,其中包含 assignedId 作为 string "assignedId":"56ab6663d69d2d1100c074db"

现在,当在两个集合中应用 $lookup 时,它不起作用,因为 Id 不匹配。

为此,我搜索了它并找到了一个包含的解决方案

{ $project: {assignedId: {$toObjectId: "$assignedId"} }}

但是这个解决方案对我不起作用,它会抛出一个错误:

assert: command failed: { "ok" : 0, "errmsg" : "invalid operator '$toObjectId'", "code" : 15999 } : aggregate failed

请帮我解决这个问题。

谢谢

最佳答案

在聚合管道中是不可能的。没有转换类型的方法。您可以将 Tasks 集合中的“assignedId”类型更改为 ObjectId 吗?否则,您必须在代码中执行此操作,将 ObjectId 转换为字符串并在另一个查询中使用。

关于mongodb - 如何在 $lookup Mongodb 的 LocalField 中将字符串转换为 objectId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41689349/

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