Node.js 带查找的Mongoose聚合

Node.js 带查找的Mongoose聚合,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有两个简单的收藏,如下所示: 任务: [ { "_id": "593eff62630a1c35781fa325", "topic_id": 301, "user_id": "59385ef6d2d80c00d9bdef97" }, { "_id": "593eff62630a1c35781fa326", "topic_id": 301, "user_id": "59385ef

我有两个简单的收藏,如下所示:

任务:

[
    {
        "_id": "593eff62630a1c35781fa325",
        "topic_id": 301,
        "user_id": "59385ef6d2d80c00d9bdef97"
    },
    {
        "_id": "593eff62630a1c35781fa326",
        "topic_id": 301,
        "user_id": "59385ef6d2d80c00d9bdef97"
    }
]
和用户集合:

[   
    {
        "_id": "59385ef6d2d80c00d9bdef97",
        "name": "XX"
    },
    {
        "_id": "59385b547e8918009444a3ac",
        "name": "YY"
    }
]
我的目的是,在分配集合上按user_id进行聚合查询,并且我希望在该组集合中包括user.name。我尝试了以下方法:

Assignment.aggregate([{
                $match: {
                    "topic_id": "301"
                }
            },
            {
                $group: {
                    _id: "$user_id",
                    count: {
                        $sum: 1
                    }
                }
            },
            {
                $lookup: {
                    "from": "kullanicilar",
                    "localField": "user_id",
                    "foreignField": "_id",
                    "as": "user"
                }
            },
            {
                $project: {
                    "user": "$user",
                    "count": "$count",
                    "_id": "$_id"
                }
            },
但问题是用户数组总是空的

[ { _id: '59385ef6d2d80c00d9bdef97', count: 1000, user: [] } ]
我想要像这样的东西:

[ { _id: '59385ef6d2d80c00d9bdef97', count: 1000, user: [_id:"59385ef6d2d80c00d9bdef97",name:"XX"] } ]

显示从mongo shell查看的实际数据,而不是
console.log()
。同时显示每个项目的模式。这很可能是assignments集合中的
user_id
实际上是一个字符串。我怀疑这一点,实际上,user_id是pf Object id类型,在模式中如下所示:“_id”:{“$oid”:“5900a3fe38606b002ba3c59e”}?我不这么认为,因为MongoDB在字段名中使用
$
是无效的。我在询问“分配”集合中的
用户id
。启动shell,请像我所问的那样在问题中包含模式。然后我们可以肯定地告诉你。分配中的用户id如下:{“\u id”:{“$oid”:“593eff62630a1c35781fa325”},“项目”:“input.aiatA2”,“用户id”:“59385ef6d2d80c00d9bdef97”,“主题id”:301,“与主题相关”:false,“文档id”:“FBIS4-22522”}{“\u id”:“{$oid”:“593eff62630a1c35781fa326”},“项目”:“input.aiatA2”,“用户id”:“59385ef6d2d80c00d9bdef97”,“主题id”:301,“是相关的”:false,“文档id”:“FBIS4-62078”}刚刚在分配对象中粘贴了两个文档是。
“59385ef6d2d80c00d9bdef97”!=Objectid(“59385ef6d2d80c00d9bdef97”)
。这就是为什么没有结果。