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

マングース:過去7日間のアップロードデータ統計をDBから取得するにはどうすればよいですか?

    説明しているクエリは、一連のドキュメントにUTC日時が含まれている場合、それらのドキュメントを日ごとにグループ化しています。

    MongoDBは、日付/時刻を1970年1月1日からのミリ秒数として内部的に保存するため、最初のステップでは、各ドキュメントの開始日を計算してから、その開始日値でグループ化する必要があります。

    MongoDB 5.0を使用している場合は、 $dateTrunc を使用できます。 演算子:

    {$dateTrunc:{date:"$createdAt",unit:"day",timezone:"America/New_York"}}
    

    古いバージョンの場合、1日の始まりを表す日付オブジェクトを計算するか、日付のみを含む文字列を作成できます。

    文字列オプションの場合:

    {$concat: [
       {$toString:{$year:{ date:"$createdAt", timezone:"America/New_York" }}},
       "-",
       {$toString:{$month:{ date:"$createdAt", timezone:"America/New_York" }}},
       "-",
       {$toString:{$dayOfMonth:{ date:"$createdAt", timezone:"America/New_York" }}},
    ]}
    

    したがって、全体的な集約パイプラインは次のようになります。

    • $ matchを使用して、目的の時間枠でドキュメントを選択します
    • $projectで各ドキュメントの開始日を計算します
    • $ groupを一日の始まりまでに、発生回数を数えます
    • ドキュメントを目的の形式に変換するためのさらなる段階


    1. findOneAndUpdateとfindOneAndReplaceの違いは何ですか?

    2. Mongooseで混合データ型を使用して値を制限するにはどうすればよいですか?

    3. サブドキュメント配列のn番目の要素(変数インデックス)に対するMongoDBクエリ

    4. SpringBootを使用したMongoDBの自動生成フィールド