评估 MongoDB 中的 JavaScript 以进行动态字段分配
您寻求基于 JavaScript 表达式动态为文档字段分配值,例如检索当前服务器时间戳。您当前的方法是使用 mongoNow() 等辅助函数,将 JavaScript 代码存储为脚本,从而防止对其进行求值。
解决方案在于 MongoDB 的服务器端代码执行功能。 MongoDB 将可重用的 JavaScript 函数存储在名为 system.js 的系统集合中。通过将代码存储在 system.js 中,您可以稍后执行它。
但是,请注意,MongoDB 中的服务器端代码执行的支持和性能有限。例如,您不能从 insert 语句中调用存储过程。
要使用 mgo 驱动程序从 Go 调用存储过程,您可以使用 mgo.Database 类型的 Run() 方法。此方法允许您发出带有要在服务器端执行的 JavaScript 代码的 eval 命令。下面是一个示例:
db.Run(bson.M{"eval": "myStoredFunction();"})
或者,您可以在聚合管道查询中使用 $eval 运算符,基于 JavaScript 表达式动态生成字段值。 $eval 运算符允许在管道内进行更复杂的计算和转换。
虽然服务器端代码执行提供了灵活性,但重要的是要考虑其局限性和潜在的性能影响。在生产环境中部署依赖此功能的代码之前,确保进行彻底的测试和分析。
以上是如何使用 JavaScript 动态分配 MongoDB 中的字段值?的详细内容。更多信息请关注PHP中文网其他相关文章!