MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara mengelompokkan tanggal secara triwulanan?

Anda dapat menggunakan $cond operator untuk memeriksa apakah:

  • $month adalah <= 3 , proyeksikan bidang bernama quarter dengan nilai sebagai "satu".
  • $month adalah <= 6 , proyeksikan bidang bernama quarter dengan nilai sebagai "dua".
  • $month adalah <= 9 , proyeksikan bidang bernama quarter dengan nilai sebagai "tiga".
  • lain nilai bidang quarter akan menjadi "keempat".
  • Kemudian $group dengan quarter lapangan.

Kode:

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

Khusus untuk skema Anda:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb memindahkan dokumen dari satu koleksi ke koleksi lain

  2. String proyek agregasi MongoDB ke ObjectId

  3. Apa cara yang benar untuk Mengindeks di MongoDB ketika ada kombinasi besar bidang?

  4. MongoServer.State setara dalam driver 2.0

  5. 6 Alat Berguna untuk Memantau Kinerja MongoDB