Tutorial polimerisasi MongoDB Terbaik Pada tahun 2024, Dalam tutorial ini Anda dapat mempelajari () Metode agregat,Konsep 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 polimerisasi MongoDB menggunakan agregat ().
Dasar sintaks agregat () metode adalah sebagai berikut:
>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
pengumpulan data adalah sebagai berikut:
{ _id: ObjectId(7df78ad8902c) title: 'MongoDB Overview', description: 'MongoDB is no sql database', by_user: 'w3cschool.cc', url: '', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 }, { _id: ObjectId(7df78ad8902d) title: 'NoSQL Overview', description: 'No sql database is very fast', by_user: 'w3cschool.cc', url: '', 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:
ekspresi | deskripsi | contoh |
---|---|---|
$ Sum | Menghitung jumlahnya. | db.mycol.aggregate ([{$ grup: {_id: "$ by_user", num_tutorial: {$ sum: "$ suka"}}}]) |
$ rata | Menghitung rata-rata | db.mycol.aggregate ([{$ grup: {_id: "$ by_user", num_tutorial: {$ avg: "$ suka"}}}]) |
$ Min | Mendapat koleksi semua dokumen sesuai minimum senilai. | db.mycol.aggregate ([{$ grup: {_id: "$ by_user", num_tutorial: {$ min: "$ suka"}}}]) |
$ Max | Mendapat koleksi semua dokumen yang sesuai dengan nilai maksimum. | db.mycol.aggregate ([{$ grup: {_id: "$ by_user", num_tutorial: {$ max: "$ suka"}}}]) |
$ Dorong | Dalam dokumen yang dihasilkan untuk memasukkan nilai ke dalam array. | db.mycol.aggregate ([{$ grup: {_id: "$ by_user", url: {$ push: "$ url"}}}]) |
$ AddToSet | Dalam dokumen yang dihasilkan untuk memasukkan nilai ke array, tetapi tidak membuat copy. | db.mycol.aggregate ([{$ grup: {_id: "$ by_user", url: {$ addToSet: "$ url"}}}]) |
$ Pertama | Menjadi data dokumen pertama sesuai dengan dokumen sumber daya semacam. | db.mycol.aggregate ([{$ grup: {_id: "$ by_user", first_url: {$ pertama: "$ url"}}}]) |
$ terakhir | Mendapatkan data dokumen terakhir sesuai dengan dokumen sumber daya semacam | db.mycol.aggregate ([{$ grup: {_id: "$ by_user", last_url: {$ terakhir: "$ url"}}}]) |
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:
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.
3. $ melewatkan instance
db.article.aggregate( { $skip : 5 });
Setelah operator pipa pengolahan $ melompat, lima dokumen pertama "disaring" keluar.