使用聚合 MongoDB

using aggregation MongoDB

我正在尝试将 .aggregate() 与其他 mongo shell 方法一起使用,我得到了 UnhandledPromiseRejectionWarning: TypeError: User.find(...).select(...).sort(...).aggregate 不是函数

const users = await User
            .find(findParams)
            .select(userResponse)
            .sort(sortParams)
            .aggregate(([
                {
                    $project:{
                        dateCreated: {$dateToString: {format: "%G-%m-%d %H:%M:%S", date: "$dateCreated"}},
                    }
                }
            ]))
            .exec()

但是,当我在没有其他方法的情况下使用 .aggregate() 时,它工作得很好。

const users = await User
            .aggregate(([
                {
                    $project:{
                        dateCreated: {$dateToString: {format: "%G-%m-%d %H:%M:%S", date: "$dateCreated"}},
                    }
                }
            ]))
            .exec()

我可以用其他方法插入它但不会出现此错误吗? 谢谢

在第一个代码块中,您试图对 find() 方法返回的游标应用 db.collection.aggregate() 方法。游标基本上是从 find()、aggregate() 和 more here.

等集合方法返回的

在第二个代码块中,您直接在 User 集合上应用 aggregate()。这就是它起作用的原因。是的,即使不使用那些游标方法 here,您也可以使用 aggregate() 进行任何操作 select、排序、限制。希望这会有所帮助,伙计。祝你有美好的一天!

MongoDB documentation page screenshot