我想在mongodb中使用$lookup添加join集合.我正在努力如下

{
 $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

请帮助我如何解决这个问题.

谢谢

推荐答案

这在聚合管道中是不可能的.没有转换类型的方法.

Mongodb相关问答推荐

如何使用MongoDB对子文档进行条件投影?

MongoDB/Mongoose查询:使用优先约束检索从位置A到位置B的路径

MongoDB与合并对象聚合

如何在Mongo中查找数组中的特定对象

我无法在react 中使用 fetch 和express 从数据库中删除数据

Kotlin 使用初级构造实例化公开类

mongoose中的 required是什么意思?

使用绝对类型在 Typescript 中编写 Mongoose 的类型化模型和模式的类和接口

将 MongoDB 地理空间索引与 3d 数据结合使用

从 MongoDB find() 结果集中识别最后一个文档

MongoDB:单个数据库处理程序的 >5 个打开连接

mongodb中类型不相等的查询

ExpressJS & Mongoose REST API struct :最佳实践?

在 Postgres JSON 数组中查询

mongoose得到`TypeError: user.save is not a function` - 出了什么问题

文本的 MongoID 数据类型

Java Mongodb 正则表达式查询

单个语句中的多个 mongo 更新运算符?

brew install mongodb 错误:Cowardly refusing to `sudo brew install' Mac OSX Lion

MongoDB - $set 更新或推送数组元素