[英]mongoose Aggregation returns empty array []?
$出階段
根據 mongodb 文檔
$out | 將聚合管道的結果文檔寫入集合。 要使用 $out 階段,它必須是管道中的最后一個階段。 |
---|
$out階段運行良好並編寫新系列,我正在使用append function
.append({ $out: "aggr_out" })
將其置於最后階段。
當前行為
callback
function 中返回一個空數組預期行為
Node.js、Mongoose 和 MongoDB 的版本
代碼
這是預期的行為; 即,當您在聚合查詢中使用$out
階段時,查詢結果將寫入$out
中指定的集合名稱。 並且,查詢返回一個空的 cursor。
例如,獲取一個包含文檔的集合:
{ _id: 1, stuff: [ "bananas", "whales" ] }
查詢:
var cur = db.collection.aggregate([
{ $out: "new_collection" }
])
當您運行此查詢(在mongo
shell 中)時,控制台 output 是一個空的 cursor(盡管創建了new_collection
)。
cur.hasNext()
返回false
(表示游標中沒有結果文檔)。
Mongoose 查詢返回一個數組(不是游標)。 因此,您會在回調結果值中看到一個空數組。 這是可以預料的。
參考: db.collection.aggregate() - 請參閱返回部分。
如果管道包含 $out 運算符,則 aggregate() 返回一個空的 cursor。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.