如何使用$ match有效地在mongodb中执行联接

如何在mongodb中执行联接?如果我加入了两个或更多集合,即使使用了$match,它也无效且不能正确加入。

这是我尝试过的代码:

db.tasks.aggregate([{"$match":{"$and":[{"super_user_id":"5dad7e6d937e2929d3930a45","is_deleted":0}]}},{"$lookup":{"from":"projects","localField":"projects._id","foreignField":"tasks.project_id","as":"pro"}},{"$unwind":"$pro"},{"$project":{"task_name":1,"project_id":"$pro._id","project_name":"$pro.project_name"}},{"$group":{"_id":{"task_name":"$task_name","taskId":"$_id","project_name":"$project_name","project_id":"$project_id"}}}])

获取输出为:

{ "_id" : { "task_name" : "very second task","taskId" : ObjectId("5dcbb770937e29163cfed455"),"project_name" : "test","project_id" : ObjectId("5dc9ab54937e292110e2ad17") } }
{ "_id" : { "task_name" : "very second task","project_name" : "monday","project_id" : ObjectId("5dc91fc9937e2937e0407647") } }
{ "_id" : { "task_name" : "very second task","project_name" : "nnnn","project_id" : ObjectId("5dc90f67937e2924d82087fb") } }
{ "_id" : { "task_name" : "very second task","project_name" : "vvv","project_id" : ObjectId("5dc90ea6937e2924d82087fa") } }

让我详细说明这个问题:

对于同一task_name,它是否与所有现有项目映射

aishijie 回答:如何使用$ match有效地在mongodb中执行联接

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3110798.html

大家都在问