sql >> データベース >  >> NoSQL >> MongoDB

MongoDB Aggregation Framework-日付範囲で照合し、日でグループ化し、各日の平均を返す方法は?

    問題は_idにあるようです $groupに使用しています。 $dayでグループ化する必要があります nullではなく 、結果を日ごとにグループ化する場合。これを試してください:

    PriceHourly.aggregate([
        { $match: { date: { $gt: start, $lt: end } } },
        { $group: { _id: "$day", price: { $avg: '$price' } } }
    ], function(err, results){
        console.log(results); 
    });
    

    とはいえ、日と時間を別々の要素としてドキュメントに保存する必要はありません。冗長データです。 dayを抽出できます およびhour dateから Date Aggregationを使用した集計クエリのフィールド 演算子。




    1. Mongo-クエリ、埋め込みドキュメントはドット表記以外は一致しません

    2. db.collection.count()は、MongoDBのシャードコレクション用にさらに多くのドキュメントを返します

    3. 春のデータmongodbグループ

    4. MongoDB $ last Aggregation Pipeline Operator