Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menggunakan Fungsi JavaScript Tersimpan dalam MongoDB untuk Menetapkan Nilai Medan Secara Dinamik?

Bagaimanakah Saya Boleh Menggunakan Fungsi JavaScript Tersimpan dalam MongoDB untuk Menetapkan Nilai Medan Secara Dinamik?

Patricia Arquette
Patricia Arquetteasal
2024-12-06 07:24:11646semak imbas

How Can I Use Stored JavaScript Functions in MongoDB to Dynamically Assign Field Values?

Menilai JavaScript dalam MongoDB untuk Menetapkan Nilai Medan

Memasukkan dokumen ke dalam koleksi MongoDB boleh ditambah dengan penilaian JavaScript untuk menetapkan nilai medan secara dinamik. Walau bagaimanapun, kod yang diberikan pada mulanya gagal menilai pernyataan JavaScript dan sebaliknya menyimpannya sebagai skrip.

Dokumentasi MongoDB menggariskan kaedah untuk menyimpan bahagian pelayan fungsi JavaScript dalam koleksi system.js. Dengan mencipta fungsi tersimpan, kami boleh menilai JavaScript dari jauh daripada klien Go.

Kaedah menggunakan Fungsi Tersimpan:

  1. Buat fungsi dalam system.js koleksi:
db.system.js.insert({
    _id: "assignDate",
    value: function() {
        return ISODate();
    }
});
  1. Panggil fungsi yang disimpan daripada Go menggunakan Run() kaedah:
func createInstance(c *mgo.Collection) {
    result, err := c.Run(
        bson.M{"eval": "assignDate()"},
    )
    checkError(err, "Could not get server time")

    var doc bson.M
    err = result.One(&doc)
    if err != nil {
        checkError(err, "Invalid result from stored function", 3)
    }
    lastSeen, ok := doc["retval"].(time.Time)
    if !ok {
        checkError(fmtErrorf("Invalid result from stored function: %v", doc["retval"]), "Invalid result from stored function: %v", 3)
    }

    // ... Insert document with evaluated field value
}

Pertimbangan:

  • Penilaian kod sisi pelayan dalam MongoDB masih mempunyai had.
  • Menggunakan disimpan functions menyediakan penyelesaian untuk menilai JavaScript, tetapi penting untuk mengambil perhatian prestasinya kaveat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Fungsi JavaScript Tersimpan dalam MongoDB untuk Menetapkan Nilai Medan Secara Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn