首頁 >後端開發 >Golang >如何使用MongoDB中儲存的JavaScript函數動態分配欄位值?

如何使用MongoDB中儲存的JavaScript函數動態分配欄位值?

Patricia Arquette
Patricia Arquette原創
2024-12-06 07:24:11644瀏覽

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

評估MongoDB 中的JavaScript 以分配欄位值

將文件插入MongoDB 集合可以透過JavaScript 評估來增強,以動態分配值。然而,最初給出的程式碼無法評估 JavaScript 語句,而是將其儲存為腳本。

MongoDB 文件概述了一種在 system.js 集合中在伺服器端儲存 JavaScript 函數的方法。透過建立儲存函數,我們可以從 Go 客戶端遠端評估 JavaScript。

使用儲存函數的方法:

  1. 在system.js 中建立一個函數集合:
db.system.js.insert({
    _id: "assignDate",
    value: function() {
        return ISODate();
    }
});
    使用Run() 從Go呼叫儲存的函數方法:
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
}

注意事項:

    MongoDB 中的伺服器端程式碼評估仍有限制。
  • 使用儲存函數提供了一種評估 JavaScript 的解決方法,但重要的是要注意它的效能注意事項。

以上是如何使用MongoDB中儲存的JavaScript函數動態分配欄位值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn