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

Agregasi pada level bulan dan level tahun, temukan juga rata-ratanya di MongoDB

  • $objectToArray konversi data objek ke format nilai kunci array
  • $filter untuk mengulangi loop dari array yang dikonversi di atas
  • periksa $and kondisi
  • $toDate untuk mendapatkan data dari tanggal string
  • $month untuk memilih bulan dari tanggal dan $year untuk memilih tahun
  • $in periksa kondisi jika bulan dalam array bulan dan tahun dalam array tahun
  • $arrayToObject konversi kembali ke objek dari array nilai kunci
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] }
              ]
            }
          }
        }
      }
    }
  }
])

Taman bermain




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb-org konflik dengan mongodb-10gen-server

  2. MongoDB:Minta kunci yang memiliki spasi di namanya

  3. MongoDB - Gunakan kerangka kerja agregasi atau mapreduce untuk mencocokkan array string dalam dokumen (pencocokan profil)

  4. Bagaimana cara mempertahankan MongoDB - data wadah Docker yang sedang berjalan di gambar baru?

  5. Driver asli MongoDB Node.js secara diam-diam menelan pengecualian `bulkWrite`