用 go 怎么执行 mongo 的脚本文件

Feyoung · 2023-07-21 22:56:49 · 1474 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2023-07-21 22:56:49 的主题,其中的信息可能已经有所发展或是发生改变。

如题:系统初次安装需要执行脚本。
当前想到的几个方案 :
1.利用mongo-driver直接执行脚本文件。
根据查找的资料发现这个工具类中的db.RunCommand(ctx, bson.D{{"eval",js}})可以执行,尝试了一下发现没有这个“eval”操作方法,去mongo官方文档查看了一番确实也没有这个方法。
2.将脚本转成bson的格式再去执行。
此方案难点就是怎么把脚本转成bson。
3.在本服务里加个mongo命令工具,直接执行mongo命令来执行脚本。
因为需要mongo支撑,mongo的镜像找了一下都是几百M,所以会将本服务的镜像变大。

想咨询下大家有没有好点的方案,或者对上面方案有啥改进和出路麻烦指明一下。


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1474 次点击  
加入收藏 微博
2 回复  |  直到 2023-07-24 22:40:43
czyt
czyt · #1 · 2年之前

先把collection转为一个格式的文件存起来,然后再调用mongodb的驱动写入

Feyoung
Feyoung · #2 · 2年之前

是的,当前看这种最合适。 第一个方案,查下了资料,高版本的mongo已经不支持eval了。第二方案没找到合适的工具转化。当前是优化了第三个方案,把collection用mongodump方式存起来了,然后用mongorestore的方式初始化的。

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传