0
我需要從DB(按價格,位置等過濾)獲取經過篩選的不動產列表,然後顯示分析表(通過Aggregation框架製作)顯示所有不動產的最小/最大/平均價格和總數量。我最後需要的簡單示例:MongoDB + Aggregation:1)通過查詢得到結果的有效方法2)通過對相同結果進行聚合來進行分析
realties = [{_id: 1, price: 2500}, {_id: 1, price: 2500}, ... ];
stats = {total: 12500, max_price: 250000, min_price: 10000, avg_price: 150000};
這樣做的最佳方法是什麼?我可以看到我必須做出相同的查詢2次:第一次,當我從DB分頁結果,然後 - 我不得不把相同的條件下進入聚合框架「$匹配」?:
realteis = db.collection.where({city: "NYC", type: 2, ...}).skip(100).limit(25)
stats = db.collection.aggregation({$match: {city: "NYC", type: 2, ...}, $group: {...}})
因此,這些是兩個幾乎相同的DB查詢,這對我來說似乎不是很有效,我相信還有更好的方法。
有沒有辦法將第一次查詢的過濾結果「鏈」到聚合框架?
或者可能使用其他工具更好? (但我仍然需要Mongo)。