簡體   English   中英

使用聚合 MongoDB

[英]using aggregation MongoDB

我正在嘗試將 .aggregate() 與其他 mongo shell 方法一起使用,但我得到了UnhandledPromiseRejectionWarning: TypeError: User.find(...).select(...).sort(...).aggregate is not a function

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()方法,骨料()和更多在這里

在第二個代碼塊中,您直接在User集合上應用了aggregate()。 這就是它起作用的原因。 是的,即使不使用此處的游標方法,您也可以使用 aggregate() 進行任何選擇、排序和限制。 希望這會有所幫助,伙計。 祝你有美好的一天!

MongoDB 文檔頁面截圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM