Artikel ini menerangkan perintah MapReduce MongoDB untuk pengiraan yang diedarkan, memperincikan peta, mengurangkan, dan memuktamadkan fungsi. Ia menyoroti pertimbangan prestasi, termasuk saiz data, kerumitan fungsi, dan latensi rangkaian, yang menyokong
Perintah mapReduce
MongoDB menyediakan cara yang kuat untuk melakukan perhitungan yang diedarkan di seluruh koleksi. Ia berfungsi dengan terlebih dahulu menggunakan fungsi peta untuk setiap dokumen dalam koleksi, memancarkan pasangan nilai utama. Kemudian, fungsi mengurangkan menggabungkan nilai yang berkaitan dengan kunci yang sama. Akhirnya, fungsi pemuktamadan pilihan boleh digunakan untuk hasil yang dikurangkan untuk pemprosesan selanjutnya.
Untuk melaksanakan pekerjaan-mengurangkan pekerjaan, anda menggunakan kaedah db.collection.mapReduce()
. Kaedah ini mengambil beberapa hujah, termasuk peta dan mengurangkan fungsi (sebagai fungsi JavaScript), nama pengumpulan output (di mana hasilnya disimpan), dan secara pilihan pertanyaan untuk mengehadkan dokumen input. Inilah contoh asas:
<code class="javascript">var map = function () { emit(this.category, { count: 1, totalValue: this.value }); }; var reduce = function (key, values) { var reducedValue = { count: 0, totalValue: 0 }; for (var i = 0; i </code>
Contoh ini mengira jumlah kiraan dan nilai bagi setiap kategori dalam koleksi sales
, hanya mempertimbangkan dokumen dengan tarikh selepas 26 Oktober, 2023 out: { inline: 1 }
Sebagai alternatif, anda boleh menentukan nama koleksi untuk menyimpan hasil dalam koleksi yang berasingan.
Peta-reduce di MongoDB, sementara berkuasa, boleh menjadi sumber yang berintensifkan, terutamanya pada dataset yang besar. Beberapa faktor ketara mempengaruhi prestasi:
inline
mengembalikan hasil secara langsung, semasa menulis ke koleksi berasingan melibatkan cakera I/O, memberi kesan kepada kelajuan. Pertimbangkan perdagangan antara kelajuan dan keperluan untuk meneruskan hasilnya.Rangka kerja pengagregatan MongoDB, menggunakan saluran paip agregasi, biasanya lebih disukai daripada peta-mengurangkan untuk kebanyakan kes penggunaan. Paip agregasi menawarkan beberapa kelebihan:
Anda harus memilih MAP-Reduce ke atas saluran paip agregasi hanya jika anda mempunyai keperluan yang sangat spesifik untuk keupayaan pemprosesannya yang diedarkan, terutama jika anda perlu memproses data yang melebihi had memori pelayan tunggal. Jika tidak, saluran paip agregasi adalah pendekatan yang disyorkan.
Debugging Operations Reduce Map boleh mencabar. Berikut adalah beberapa strategi:
print()
dalam peta anda dan mengurangkan fungsi untuk mengesan pelaksanaannya dan mengenal pasti isu -isu yang berpotensi. Periksa log MongoDB untuk sebarang kesilapan.try...catch
blok dalam peta anda dan mengurangkan fungsi untuk mengendalikan pengecualian yang berpotensi dan memberikan mesej ralat yang bermaklumat.Dengan berhati-hati mempertimbangkan perkara-perkara ini, anda boleh menggunakan peta-reduce dengan berkesan di MongoDB sambil mengurangkan isu-isu prestasi yang berpotensi dan debugging cabaran. Ingatlah bahawa saluran paip agregasi sering merupakan pilihan yang lebih baik untuk kebanyakan senario kerana prestasi mereka yang lebih baik dan kemudahan penggunaan.
Atas ialah kandungan terperinci Bagaimanakah saya melakukan operasi mengurangkan peta di mongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!