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

四半期ごとに日付をグループ化する方法は?

    $ condを利用できます 次のことを確認する演算子:

    • $ month <=3です 、 Quarterという名前のフィールドを投影します withvalueは「1」です。
    • $ month <=6です 、 Quarterという名前のフィールドを投影します withvalueは「2」です。
    • $ month <=9です 、 Quarterという名前のフィールドを投影します withvalueは「3」です。
    • フィールドquarterの値 「4番目」になります。
    • 次に$group 四半期 フィールド。

    コード:

    db.collection.aggregate([
      {
        $project: {
          date: 1,
          quarter: {
            $cond: [
              { $lte: [{ $month: "$date" }, 3] },
              "first",
              {
                $cond: [
                  { $lte: [{ $month: "$date" }, 6] },
                  "second",
                  {
                    $cond: [{ $lte: [{ $month: "$date" }, 9] }, "third", "fourth"],
                  },
                ],
              },
            ],
          },
        },
      },
      { $group: { _id: { quarter: "$quarter" }, results: { $push: "$date" } } },
    ]);
    

    スキーマに固有:

    db.collection.aggregate([
      {
        $project: {
          dateAttempted: 1,
          userId: 1,
          topicId: 1,
          ekgId: 1,
          title: 1,
          quarter: {
            $cond: [
              { $lte: [{ $month: "$dateAttempted" }, 3] },
              "first",
              {
                $cond: [
                  { $lte: [{ $month: "$dateAttempted" }, 6] },
                  "second",
                  {
                    $cond: [
                      { $lte: [{ $month: "$dateAttempted" }, 9] },
                      "third",
                      "fourth",
                    ],
                  },
                ],
              },
            ],
          },
        },
      },
      { $group: { _id: { quarter: "$quarter" }, results: { $push: "$$ROOT" } } },
    ]);
    


    1. MongoDB:致命的なエラー:クラス'MongoClient'が見つかりません

    2. PHPとMongoDBの使用開始

    3. 複雑なオブジェクトをredisに保存する方法(redis-pyを使用)

    4. MISCONF Redisは、RDBスナップショットを保存するように構成されています