sql >> Databáze >  >> NoSQL >> MongoDB

Jak seskupit datum čtvrtletně?

Můžete použít $cond operátora, abyste zkontrolovali, zda:

  • $month je <= 3 , promítněte pole s názvem quarter s hodnotou jako „jedna“.
  • $month je <= 6 , promítněte pole s názvem quarter s hodnotou jako "dvě".
  • $month je <= 9 , promítněte pole s názvem quarter s hodnotou jako „tři“.
  • jinak hodnotu pole quarter by bylo „čtvrté“.
  • Poté $group podle quarter pole.

Kód:

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" } } },
]);

Specifické pro vaše schéma:

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. Jak vytvořit RedisCacheManager v spring-data 2.0.x

  2. jarní data mongodb skupina podle

  3. Nelze se připojit k Redis v 10.XX.XX.28:6379:Neznámá chyba – při přístupu z Spring Batch nebo Windows

  4. služba mongodb se nespouští