我想在 mongodb 中使用 $lookup
添加联接集合。我正在尝试以下操作:
{
$lookup:{
from:"User",
localField:"assignedId",
foreignField:"_id",
as:"dataa"}
}
现在我有两个集合
User 包含用户的 objectid
,例如 "_id" : ObjectId("56ab6663d69d2d1100c074db"),
而 Tasks 则包含一个 string
类型的 assignedId
,例如 "assignedId":"56ab6663d69d2d1100c074db"
现在,在两个集合中应用 $lookup 不起作用,因为 ID 不匹配。
为此,我通过 Google 找到了一种解决方案,即包括
{ $project: { assignedId: {$toObjectId: "$assignedId"} }}
但这个解决方案对我来说不起作用,它会抛出一个错误:
assert: command failed: { "ok" : 0, "errmsg" : "invalid operator '$toObjectId'", "code" : 15999 } : aggregate failed
请帮助我解决这个问题。
谢谢
"assignedId":ObjectId("56ab6663d69d2d1100c074db")
,现在我想根据assignedId获取任务,那么我该如何编写查询呢...Task.find({assignedId:ObjectId("56ab6663d69d2d1100c074db")},function(err,data){....})
- Saurabh Sharma56ab6663d69d2d1100c074db
,现在我想从tasks
集合中获取数据,如下所示:Task.find({assignedId : ownerId}, function(err,data){....})
,但是在tasks集合中,我有一个assignedId
,例如ObjectId("56ab6663d69d2d1100c074db")
,那么它将如何工作?如何匹配这些id? - Saurabh Sharma