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

月レベルと年レベルでの集計、MongoDBでの平均も求めます

    • $objectToArray dataを変換する オブジェクトから配列へのキー値形式
    • $filter 上記の変換された配列のループを繰り返す
    • $andを確認してください 条件
    • $toDate dataを取得するには 文字列の日付から
    • $month 日付と$yearから月を選択します 年を選択するには
    • $in 月が月の配列であり、年が年の配列である場合は、条件をチェックインします
    • $arrayToObject Key-Value配列からオブジェクトに変換し直します
    var years = [2021];
    var months = [5];
    db.collection.aggregate([
      {
        $project: {
          data: {
            $arrayToObject: {
              $filter: {
                input: { $objectToArray: "$data" },
                cond: {
                  $and: [
                    { $in: [{ $year: { $toDate: "$$this.k" } }, years] },
                    { $in: [{ $month: { $toDate: "$$this.k" } }, months] }
                  ]
                }
              }
            }
          }
        }
      }
    ])
    

    遊び場




    1. mongodb集計を使用して、ネストされた配列内にある値の合計を見つける方法は?

    2. マングース:ドキュメントの更新時に、日付までのキャストが値として失敗しました

    3. 電子を適切に使用する

    4. spring-data-mongodbを使用した集計操作の結果のストリーミング