Error: Command failed with an error: please define an external editor

本文介绍了如何在MongoDB中设置外部编辑器,如vi,以便更方便地编辑和管理数据库中的函数。通过设置EDITOR环境变量并重启MongoDB服务,可以使用mongosh连接并编辑函数。示例中展示了创建、调用和编辑函数的过程,强调了外部编辑器在处理多行代码时的便利性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误提示

在这里插入图片描述

解决方案
  1. 在启动MongoDB实例之前,设置外部编辑器。
## 查看vi编辑器的位置
[root@linux130 ~]# whereis vi
vi: /usr/bin/vi /usr/share/man/man1/vi.1.gz
## 设置外部编辑器
[root@linux130 ~]# export EDITOR="/usr/bin/vi"

  1. 重启mongod
[root@linux130 ~]# systemctl restart mongod
  1. 使用mongosh连接数据库
[root@linux130 ~]# mongosh

在这里插入图片描述
4. 创建 abc 函数

test> abc = function(x,y){
... return x + y;
... }
[Function: abc]

  1. 调用 abc 函数
test> abc(10, 10)
20

  1. 编辑 abc 函数
test> edit abc

在这里插入图片描述
将加法 修改为 乘法,wq保存退出
在这里插入图片描述
7. 再次调用 abc 函数,验证是否修改成功

test> abc(10, 10)
100

在这里插入图片描述

总结:MongoDB使用外部编辑器的原因

shell 的多行支持比较有限:不能编辑前面的行。如果编辑到第 15 行时发现第 1 行有一个错误,那会非常让人懊恼。因此,对于较大的代码块或者对象,可能需要在编辑器中编辑它们。为此,可以在shell 中设置 EDITOR 变量(也可以在环境变量中进行设置)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值