Menilai JavaScript dalam MongoDB untuk Tugasan Medan Dinamik
Anda berusaha untuk menetapkan nilai secara dinamik pada medan dokumen berdasarkan ungkapan JavaScript, seperti mendapatkan semula cap masa pelayan semasa. Pendekatan semasa anda, di mana anda menggunakan fungsi pembantu seperti mongoNow(), menyimpan kod JavaScript sebagai skrip, menghalangnya daripada dinilai.
Penyelesaian terletak pada keupayaan pelaksanaan kod sebelah pelayan MongoDB. MongoDB menyimpan fungsi JavaScript yang boleh digunakan semula dalam koleksi sistem yang dipanggil system.js. Dengan menyimpan kod anda dalam system.js, anda boleh melaksanakannya kemudian.
Walau bagaimanapun, ambil perhatian bahawa pelaksanaan kod sebelah pelayan dalam MongoDB mempunyai sokongan dan prestasi yang terhad. Contohnya, anda tidak boleh memanggil prosedur tersimpan dari dalam pernyataan sisipan.
Untuk memanggil prosedur tersimpan daripada Go menggunakan pemacu mgo, anda boleh menggunakan kaedah Run() jenis mgo.Database. Kaedah ini membolehkan anda mengeluarkan perintah eval dengan kod JavaScript untuk dilaksanakan di sebelah pelayan. Berikut ialah contoh:
db.Run(bson.M{"eval": "myStoredFunction();"})
Sebagai alternatif, anda boleh menggunakan operator $eval dalam pertanyaan saluran paip pengagregatan untuk menjana nilai medan secara dinamik berdasarkan ungkapan JavaScript. Pengendali $eval membenarkan pengiraan dan transformasi yang lebih kompleks dalam perancangan.
Walaupun pelaksanaan kod sisi pelayan memberikan kefleksibelan, adalah penting untuk mempertimbangkan pengehadan dan potensi implikasi prestasinya. Pastikan ujian dan pemprofilan menyeluruh sebelum menggunakan kod yang bergantung pada fungsi ini dalam persekitaran pengeluaran.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Nilai Medan secara Dinamik dalam MongoDB Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!