我需要从 DB 中获取经过筛选的不动产列表(按价格、位置等过滤),然后显示分析表(通过聚合框架制作),显示所有不动产的最小/最大/平均价格和总量。最后我需要的简化示例:
realties = [{_id: 1, price: 2500}, {_id: 1, price: 2500}, ... ];
stats = {total: 12500, max_price: 250000, min_price: 10000, avg_price: 150000};
最好的方法是什么?正如我所看到的,我必须进行 2 次相同的查询:第一次从 DB 获得分页结果时,然后 - 我必须将相同的条件放入聚合框架中的“$match”中?:
realteis = db.collection.where({city: "NYC", type: 2, ...}).skip(100).limit(25)
stats = db.collection.aggregation({$match: {city: "NYC", type: 2, ...}, $group: {...}} )
所以这是对 DB 的两个几乎相同的查询,对我来说似乎不是很有效,我相信有更好的方法。
有没有办法将过滤结果从第一个查询“链接”到聚合框架?
或者使用其他工具可能会更好?(但无论如何我都需要Mongo)。