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

MongoDb Ada per kolom

Saya memiliki agregasi menggunakan $facet; ini memungkinkan melakukan kueri secara paralel untuk setiap dokumen yang lewat. Jadi, kami menanyakan dan menghitung Cost dan Status sebagai dua aspek dari kueri yang sama.

db.test.aggregate( [
  {
      $match: { fld1: "Data" }
  },
  { 
      $facet: {
          cost: [
              { $match: { cost: { $exists: true } } },
              { $count: "count" }
          ],
          status: [
              { $match: { status: { $exists: true } } },
              { $count: "count" }
          ],
      }
  },
  { 
      $project: { 
          costCount: { $arrayElemAt: [ "$cost.count" , 0 ] },
          statusCount: { $arrayElemAt: [ "$status.count" , 0 ] }
      } 
  }
] )

Saya mendapatkan hasil dari { "costCount" : 4, "statusCount" : 3 } , menggunakan dokumen berikut:

{ _id: 1, fld1: "Data", cost: 12, status: "Y" },
{ _id: 2, fld1: "Data", status: "N" },
{ _id: 3, fld1: "Data" },
{ _id: 4, fld1: "Data", cost: 90 },
{ _id: 5, fld1: "Data", cost: 44 },
{ _id: 6, fld1: "Data", cost: 235, status: "N" },
{ _id: 9, fld1: "Stuff", cost: 0, status: "Y" }


CATATAN :Berikut adalah kueri serupa menggunakan aspek:Penyortiran kustom MongoDB pada dua bidang .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kembalikan sejumlah catatan terbatas dari jenis tertentu, tetapi jumlah catatan lain yang tidak terbatas?

  2. Pengontrol node.js ekspres tidak menunggu manipulasi data dan mengembalikan data lama

  3. IDE kueri untuk MongoDB?

  4. Menggunakan fungsi JavaScript yang tersimpan dalam pipa Agregasi, MapReduce atau runCommand

  5. Cara menggunakan fungsi agregasi mongo db-query