Node.js 使用聚合MongoDB

Node.js 使用聚合MongoDB,node.js,mongodb,aggregate,mongo-shell,Node.js,Mongodb,Aggregate,Mongo Shell,我试图将.aggregate()与其他mongo shell方法一起使用,我得到了 未处理的PromisejectionWarning:TypeError:User.find(…).select(…).sort(…).aggregate不是函数 const users = await User .find(findParams) .select(userResponse) .sort(sortParams)

我试图将.aggregate()与其他mongo shell方法一起使用,我得到了 未处理的PromisejectionWarning: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()等集合方法返回的

在第二个代码块中,您将直接对用户集合应用aggregate()。这就是它起作用的原因。是的,您可以使用aggregate()执行任何选择、排序和限制操作,即使不使用这些游标方法。希望这会有帮助,伙计。祝你今天愉快