Sau*_*rma 15 lookup join mongodb
我想$lookup在mongodb中添加联接集合.我正在尝试如下
{
$lookup:{
from:"User",
localField:"assignedId",
foreignField:"_id",
as:"dataa"}
}
Run Code Online (Sandbox Code Playgroud)
现在我有两个系列
用户包含objectid的用户喜欢 "_id" : ObjectId("56ab6663d69d2d1100c074db"),
和 任务,其中包含assignedId为string "assignedId":"56ab6663d69d2d1100c074db"
现在,当在两个集合中应用$ lookup时它不起作用,因为Id不匹配.
为此,我用Google搜索并找到了一个包含的解决方案
{ $project: { assignedId: {$toObjectId: "$assignedId"} }}
但这个解决方案不适合我,它抛出一个错误:
assert: command failed: { "ok" : 0, "errmsg" : "invalid operator '$toObjectId'", "code" : 15999 } : aggregate failed
Run Code Online (Sandbox Code Playgroud)
请帮助我如何解决此问题.
谢谢
这在聚合管道中是不可能的.没有方法可以转换类型.您可以将Tasks集合中"assignedId"的类型更改为ObjectId吗?否则你必须在代码中执行它,将ObjectId转换为String并在另一个查询中使用in.
| 归档时间: |
|
| 查看次数: |
7417 次 |
| 最近记录: |