首页 >后端开发 >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();
    }
});
  1. 使用 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