首页 > 后端开发 > Golang > 如何评估 JavaScript 表达式以动态分配 MongoDB 中的字段值?

如何评估 JavaScript 表达式以动态分配 MongoDB 中的字段值?

Linda Hamilton
发布: 2024-12-04 16:21:12
原创
215 人浏览过

How Can I Evaluate JavaScript Expressions to Dynamically Assign Field Values in MongoDB?

评估 MongoDB 字段值中的 JavaScript 表达式

在 MongoDB 中,可以根据 JavaScript 表达式的评估动态分配字段值。但是,简单地插入 JavaScript 对象作为字段值不会导致表达式被计算。

服务器端代码执行

MongoDB 提供了一种存储机制并在服务器端执行 JavaScript 函数。特殊的集合system.js存储了这些函数。要访问此集合并执行函数,可以使用 mgo.Database 类型的 Run() 方法。 Run() 方法采用 eval 命令和要执行的 JavaScript 代码作为参数。

例如,要使用 mgo 驱动程序从 Go 调用名为 myStoredFunction() 的存储函数,您可以使用以下命令code:

db.Run(bson.M{"eval": "myStoredFunction();"})
登录后复制

示例

假设你要设置将 lastSeen 字段更改为当前服务器时间。您可以在 system.js 中创建一个名为 getCurrentTime() 的存储 JavaScript 函数:

function getCurrentTime() {
  return (new Date()).toISOString();
}
登录后复制

然后,在插入语句中,您可以按如下方式引用存储的函数:

err := c.Insert(
   struct{Serial, Priority, Url, LastSeen interface{}}{ 
      Url: getInformedHost() + ":" + getRunningPortString(), 
      Priority: rand.Int(), 
      LastSeen: bson.M{"$eval": "getCurrentTime()"}
   }
)
登录后复制

通过在 LastSeen 字段值中使用 $eval,MongoDB 将计算指定的 JavaScript 表达式并将结果存储为字段值。

以上是如何评估 JavaScript 表达式以动态分配 MongoDB 中的字段值?的详细内容。更多信息请关注PHP中文网其他相关文章!

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