DB からフィルター処理された不動産のリストを取得し (価格、場所などでフィルター処理)、すべての不動産の最小/最大/平均価格と合計数量を示す分析テーブル (集計フレームワークを介して作成) を表示する必要があります。最後に必要なものの簡単な例:
realties = [{_id: 1, price: 2500}, {_id: 1, price: 2500}, ... ];
stats = {total: 12500, max_price: 250000, min_price: 10000, avg_price: 150000};
それを行う最善の方法は何ですか?ご覧のとおり、同じクエリを 2 回作成する必要があります。1 回目は、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に対する2つのほぼ同一のクエリであり、私にはあまり効果的ではないようであり、より良いアプローチがあると思います.
フィルタリングされた結果を最初のクエリから集計フレームワークに「チェーン」する方法はありますか?
それとも、他のツールを使用した方が良いのでしょうか? (しかし、とにかくMongoが必要です)。