1
我有以下合計:總推N多導致
db.reports.aggregate({ $group: { _id: "$user", reports: { $push: {report: {properties: "$properties"} } }}}, { $project: { _id: 0, user: "$_id", reports: "$reports"} })
我想以某種方式限制的是那些獲得推入陣列報告的數量。 I.E我想將報告限制爲用戶定義的值。 1,5,10等含義我想要N個報告(我將按時間戳排序)包含在報告字段中。現在我正在推動所有報告不確定如何限制每個用戶的報告數量。
我嘗試了$限制,但這並不奏效,因爲它限制了返回的用戶數量,而不是推入到報表數組中的報表數量。
基本上我想按用戶分組我的報告,並且只包含一定數量的報告。我希望儘可能早地限制報告的數量,這樣我就不必在整個管道中處理整個集合。
你可以用mapReduce輕鬆做到這一點。我不確定你可以簡單地使用聚合。不幸的是,現在不支持$ slice運算符。 – innoSPG
有沒有辦法限制每個用戶以某種其他方式報告彙總的數量? IE瀏覽器如果我沒有推入數組。也許有幾個小組正在籌備中。 – lostintranslation
我不知道這是否可能。但其他人可能會提出一個想法。同時,你可以嘗試我的減少來解決你的問題。 – innoSPG