首页 > 后端开发 > Golang > 如何使用MongoDB中存储的JavaScript函数动态分配字段值?

如何使用MongoDB中存储的JavaScript函数动态分配字段值?

Patricia Arquette
发布: 2024-12-06 07:24:11
原创
673 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板