当前位置: 首页 > news >正文

MongoDB#Code和Function

背景

在MongoDB Shell中, 使用db.system.js.inertOne 新增一个自定义函数后,读取值类型显示Code Class,该如何使用?Code类型和Function能互相转换吗?

实践

// 保存一个函数到 system.js 集合
db.system.js.insertOne({
  _id: "myFunction",
  value: function(x) { return x * 2; }
});

// 查询 -> Code('function(x) {return x * 2;}')
const myFunction = db.system.js.findOne({ _id: "myFunction" }).value;
// 直接调用执行myFunction报错:myFunction is not a function.

// 转换成Function -> [Function (anonymous)]
const myFunc = eval(`(${myFunction.code})`)

// 执行 -> 4
myFunc(2)

转换

// Function -> Code
const myFunc = function() {return 'hello world!';}
const myCode = new Code(myFunc.toString())

// Code -> Function
const sumCode = new Code('function(a, b) { return a + b; }')
const sumFunc = new Fucntion('return ' + sumCode.code)
sumFunc()(1, 2)

注意

  • 以上都是在MongoDB Shell中操作
  • Code Class详见
  • TypeError: xxx is not a function

说明xxx函数或类型在当前版本中已经被移除或不再支持(注意版本API变更)

相关文章:

  • 华三交换机S5560 NQA测试
  • vscode如何使用鼠标滚轮调整字体大小
  • 3D Web轻量化引擎HOOPS Communicator如何赋能航空航天制造?
  • 图神经网络实战(24)——基于LightGCN构建推荐系统
  • PostgreSQL 支持字段类型
  • Windows 11【1001问】Windows 11系统硬件配置要求
  • 特辣的海藻!3
  • C# winfrom 修改系统快捷键 提高效率 把难按的快捷 换成容易按的快捷键 减轻工作难度
  • 【初探数据结构】时间复杂度和空间复杂度
  • 3. Spring Cloud LoadBalancer 入门与使用
  • 快速上手 Unstructured:安装、Docker部署及PDF文档解析示例
  • vue3响应式数据原理
  • 面向机器人操作的协同、泛化和高效的双-系统
  • GoFly框架中集成Bolt 和badfer两个Go语言嵌入式键值数据库
  • uniapp在app下使用mqtt协议!!!支持vue3
  • DeepSeek技术:数字化时代的商业规则重塑者
  • 19、《Springboot+MongoDB整合:玩转文档型数据库》
  • llama.cpp 一键运行本地大模型 - Windows
  • esp工程报错:something went wrong when trying to build the project esp-idf 一种解决办法
  • [AI相关]问问DeepSeek如何基于Python,moviePy实现视频字幕功能
  • 国寿资产获批参与第三批保险资金长期投资改革试点
  • 新修订的《餐饮业促进和经营管理办法》公布,商务部解读
  • 马上评|训斥打骂女儿致死,无暴力应是“管教”底线
  • 讲座|消逝之钟:《红楼梦》与《布登勃洛克一家》中的时间观
  • 【社论】打破“隐形高墙”,让老年人更好融入社会
  • 92岁上海交大退休教师捐赠百万元给学校,其父也曾设奖学金