Cara menggunakan mongodb aggregation pipeline

MongoDB terpolimerisasi (agregat) terutama untuk pengolahan data (seperti rata-rata statistik, jumlah, dll), dan mengembalikan hasil data dihitung. count pernyataan sql agak mirip (*).


() Metode agregat

Metode polimerisasi MongoDB menggunakan agregat ().

tatabahasa

Dasar sintaks agregat () metode adalah sebagai berikut:

>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

contoh

pengumpulan data adalah sebagai berikut:

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by_user: 'w3cschool.cc',
   url: 'http://www.w3cschool.cc',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100
},
{
   _id: ObjectId(7df78ad8902d)
   title: 'NoSQL Overview', 
   description: 'No sql database is very fast',
   by_user: 'w3cschool.cc',
   url: 'http://www.w3cschool.cc',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 10
},
{
   _id: ObjectId(7df78ad8902e)
   title: 'Neo4j Overview', 
   description: 'Neo4j is no sql database',
   by_user: 'Neo4j',
   url: 'http://www.neo4j.com',
   tags: ['neo4j', 'database', 'NoSQL'],
   likes: 750
},

Sekarang kita atur di atas dihitung untuk setiap jumlah artikel yang ditulis oleh penulis menggunakan agregat () dihitung sebagai berikut:

> db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
{
   "result" : [
      {
         "_id" : "w3cschool.cc",
         "num_tutorial" : 2
      },
      {
         "_id" : "Neo4j",
         "num_tutorial" : 1
      }
   ],
   "ok" : 1
}
>

Contoh yang sama atas pernyataan sql: pilih by_user, count (*) dari grup mycol oleh by_user

Dalam contoh di atas, kita by_user lapangan dengan lapangan untuk kelompok data dan menghitung jumlah dari nilai yang sama by_user lapangan.

Tabel berikut menunjukkan beberapa ekspresi agregasi:

ekspresideskripsicontoh$ SumMenghitung jumlahnya.db.mycol.aggregate ([{$ grup: {_id: "$ by_user", num_tutorial: {$ sum: "$ suka"}}}])$ rataMenghitung rata-ratadb.mycol.aggregate ([{$ grup: {_id: "$ by_user", num_tutorial: {$ avg: "$ suka"}}}])$ MinMendapat koleksi semua dokumen sesuai minimum senilai.db.mycol.aggregate ([{$ grup: {_id: "$ by_user", num_tutorial: {$ min: "$ suka"}}}])$ MaxMendapat koleksi semua dokumen yang sesuai dengan nilai maksimum.db.mycol.aggregate ([{$ grup: {_id: "$ by_user", num_tutorial: {$ max: "$ suka"}}}])$ DorongDalam dokumen yang dihasilkan untuk memasukkan nilai ke dalam array.db.mycol.aggregate ([{$ grup: {_id: "$ by_user", url: {$ push: "$ url"}}}])$ AddToSetDalam dokumen yang dihasilkan untuk memasukkan nilai ke array, tetapi tidak membuat copy.db.mycol.aggregate ([{$ grup: {_id: "$ by_user", url: {$ addToSet: "$ url"}}}])$ PertamaMenjadi data dokumen pertama sesuai dengan dokumen sumber daya semacam.db.mycol.aggregate ([{$ grup: {_id: "$ by_user", first_url: {$ pertama: "$ url"}}}])$ terakhirMendapatkan data dokumen terakhir sesuai dengan dokumen sumber daya semacamdb.mycol.aggregate ([{$ grup: {_id: "$ by_user", last_url: {$ terakhir: "$ url"}}}])

Konsep pipeline

Pipa di Unix dan Linux pada umumnya digunakan untuk keluaran perintah saat ini sebagai parameter untuk perintah selanjutnya.

MongoDB MongoDB dokumen polimer pipa di pipa setelah hasil diproses untuk pengolahan pipa berikutnya. operasi pipa dapat diulang.

Ekspresi: pengolahan input dan output dokumen. Ekspresi stateless, hanya dapat digunakan untuk menghitung pipa saat dokumen agregat, Anda tidak bisa berurusan dengan dokumen lainnya.

Di sini kami memperkenalkan kerangka agregasi umum digunakan dalam beberapa operasi:

  • $ Project: Memodifikasi struktur dokumen masukan. Dapat digunakan untuk mengubah nama, menambah atau menghapus bidang, juga dapat digunakan untuk membuat perhitungan bersarang dan dokumentasi.
  • $ Pertandingan: digunakan untuk menyaring data, hanya output dari dokumen yang berkualitas. $ Pertandingan menggunakan MongoDB permintaan standar operator.
  • $ Limit: untuk membatasi jumlah dokumen pipa polimerisasi MongoDB kembali.
  • $ Lewati: Loncat jumlah tertentu dokumen dalam pipa polimerisasi, dan mengembalikan sisa dokumen.
  • $ Unwind: dokumen dibagi dalam berbagai bidang jenis menjadi beberapa, setiap array yang berisi nilai.
  • $ Kelompok: koleksi dokumen pengelompokan dapat digunakan untuk hasil statistik.
  • $ Urutan output dokumen masukan setelah pemesanan.
  • $ GeoNear: Memerintahkan output dokumen dekat dengan lokasi geografis.

Contoh operator pipa

1, contoh proyek $

db.article.aggregate(
    { $project : {
        title : 1 ,
        author : 1 ,
    }}
 );

Dalam hal ini hasil hanya akan ada _id, tilte dan penulis tiga bidang, bidang standar _id adalah untuk dimasukkan, jika order tidak berisi _id jika dapat:

db.article.aggregate(
    { $project : {
        _id : 0 ,
        title : 1 ,
        author : 1
    }});

2. contoh pertandingan $

db.articles.aggregate( [
                        { $match : { score : { $gt : 70, $lte : 90 } } },
                        { $group: { _id: null, count: { $sum: 1 } } }
                       ] );

$ Pertandingan digunakan untuk memperoleh skor lebih besar dari 70 adalah kurang dari atau sama dengan 90 catatan, maka catatan yang cocok untuk tahap berikutnya dari operator pipa $ kelompok untuk diproses.

Apa itu aggregation MongoDB?

Singkatnya, proses agregasi dalam mongodb adalah memproses data (record) untuk dikumpulkan menjadi satu atau dipisah-pisah. Sebagai contoh terdapat data harga barang (nama, harga, kategori). Ingin mendapatkan harga rata-rata untuk tiap kategori barang, proses ini dinamakan agregasi.

Apa saja bahasa pemrograman yang didukung oleh MongoDB?

Sampai saat ini, bahasa pemrograman yang telah mendukung MongoDB antara lain: C, C++, C#, Haskell, Java, JavaScript, Lisp, Perl, PHP, Python, Ruby dan Scala.

MongoDB buat apa?

MongoDB adalah salah satu jenis database NoSQL yang cukup populer digunakan dalam pengembangan website. Berbeda dengan database jenis SQL yang menyimpan data menggunakan relasi tabel, MongoDB menggunakan dokumen dengan format JSON. Hal inilah yang dianggap membuat pengelolaan data menggunakan MongoDB lebih baik.

Mengapa MongoDB disebut database berorientasi dokumen?

Berorientasi pada dokumen-Karena MongoDB adalah database tipe NoSQL, alih-alih memiliki data dalam format tipe relasional, MongoDB menyimpan data dalam dokumen. Ini membuat MongoDB sangat fleksibel dan mudah beradaptasi dengan situasi dan persyaratan dunia bisnis nyata.