Belajar Mongodb |
Bismillahirrahmanirahim, kali ini saya akan menulis artikel tidak terlalu panjang tentang cara menangani error di mongodb jika terkena memori limit ketika melakukan aggregate. Pernah kah kalian menemukan pesan error sepereti ini "Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting, aborting operation.", pesan error tersebut menunjukan bahwa Secara default, agregasi di mongodb terjadi di memori dan tahapan pipeline memiliki batas RAM 100 Mb. Sepertinya kalian telah melampaui ambang batas ini, sehingga muncul pesan error tersebut.
Cara Mengatasinya
Untuk cara mengatasinya atau fixing nya juga tidak terlalu sulit karena hanya menambahkan beberapa baris code saja berikut contoh code nya hanya menambahkan "allowDiskUse" : true or false.
// contoh menggunakan query raw aggregate
db.buku.aggregate([
{
$lookup: {
from: "penulis",
localField: "id_buku",
foreignField: "id",
as: "penulis"
},
},
{
$unwind: "$penulis"
},
], { "allowDiskUse" : true })
// contoh jika menggunakan mongose di nodejs dengan cursor
// schema ganti dengan nama schema aggregate isi dengan kondisi aggregate
schema.aggregate(aggregate).allowDiskUse(true)
Ok cara mengatasi nya juga tidak terlalu sulit kan hehehe, jangan terlalu panik tetap tenang dan searching untuk mendapatkan solusinya, ini juga menjadi catatan bagi penulis jika nanti ada kondisi seperti ini lagi saya tidak akan lupa hehehe dan ada cara untuk mengatasinya.
Sebagai tambahan mungkin jika menemukan memory limit juga dan blank data biasanya karena kolom tidak di index. Sekian semoga bermanfa'at tulisan pendek ini jika ada yang di tanyakan silahkan tinggalkan di kolom komentar saja ya terima kasih
2 Komentar
Terima kasih sangat menbantu saya udah cari kemana mana akhirnya nemu yang bahasa indonesia
BalasHapusTerima kasih sangat membantu akhirnya ada yang bahasa indonesia juga
BalasHapus