当前位置: 首页 > 知识库问答 >
问题:

如何通过shell脚本执行mongo命令?(我的坏了)

夏奕
2023-03-14

我试图在mongo shell中使用脚本js。我正在读一本关于这个主题的书。我尝试了几个选项,例如在我的计算机的特定位置打开cmd。我在这里发现了一个问题“如何通过shell脚本执行mongo命令?”,但对我来说似乎什么都不管用。我的mongo工作正常,我可以输入mongo,只需在cmd中键入mongo。但是,它找不到js文件。我正在使用Windows;有人知道引擎盖下会发生什么吗?

例如:

mongo  demo.js

2020-02-20T11:03:33.098-0300 E  -        [main] file [demo.js] doesn't exist
2020-02-20T11:03:33.098-0300 F  -        [main] failed to load: demo.js
2020-02-20T11:03:33.098-0300 E  -        [main] exiting with code -3

共有1个答案

仇正平
2023-03-14

使用以下命令创建您的my_script.js文件:

db.testColl.insertOne( { a: "hello" } )

将脚本文件放在当前目录中。


一,。从OS命令行运行JS脚本:

从操作系统提示符执行以下操作:

> mongo localhost/testDB my_script.js

一旦上面的命令运行,您将看到如下输出(类似,取决于您的MongoDB版本和操作系统(Windows,在本例中)):

MongoDB shell version v4.2.3
connecting to: mongodb://localhost:27017/testdb?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("456b350f-668f-4389-9901-7c456e2c50fe") }
MongoDB server version: 4.2.3


现在,从Mongo Shell(即domongo,然后从mongo提示符):

mongo > use testDB
mongo > show collections

您将看到列出的testColl

mongo > db.testColl.find()
{ "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }

这是在testDB数据库和集合testColl中根据my_script.js中的命令创建的文档。


二,。从Mongo Shell运行JS脚本:

此外,您可以在Mongo Shell中运行my_script.js

mongo > load("my_script.js")
true
mongo > db.test.find()
{ "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }
{ "_id" : ObjectId("5e4ea10f276cde8fc5fedec5"), "a" : "hello" }

请参阅,有两个文档具有不同的\u id字段值。

注意:我认为您只能从运行一些命令。js文件。


3.另一个例子:

创建一个名为script2的JS文件。js包含以下内容:

db.test.find().forEach(printjson)

注意,printjsonshell方法将文档打印到shell输出。

mongo > load("script2.js")
{ "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }
{ "_id" : ObjectId("5e4ea10f276cde8fc5fedec5"), "a" : "hello" }
  • 加载()
  • 在MongoShell中打印文档值
 类似资料:
  • 问题内容: 如何通过外壳程序脚本执行SQL命令,以使其自动化? 我想使用外壳程序脚本恢复在SQL文件中收集的数据。我想连接到服务器并还原数据。通过SSH命令行单独执行时,该命令有效。 这是我使用的命令: 这是创建文件并将其通过管道传递到mysql 的Shell脚本代码。 正确的方法是什么? 问题答案: 您需要使用该标志来发送密码。这很棘手,因为您和密码之间必须没有空格。 如果在空格之后使mysql

  • 本文向大家介绍分享一个可以通过命令简写执行对应命令的Shell脚本,包括了分享一个可以通过命令简写执行对应命令的Shell脚本的使用技巧和注意事项,需要的朋友参考一下 本篇文章介绍一个可以通过命令简写执行对应命令的 shell 脚本。 假设这个 shell 脚本的名称为 tinyshell.sh。 在 Linux 下进行项目开发,经常会用到一些调试开发命令。 这些命令可能比较长,需要输入多个字符。

  • 我有一个配置单元Udf,在配置单元终端工作良好,我想我想通过shell脚本执行它。在配置单元终端上,我可以执行以下命令: 然后我得到返回代码1 配置单元Udf是否支持shell脚本,如果它做错了我正在做什么。提前致谢

  • 问题内容: 我的nodejs项目有以下文件 我使用提供环境变量的-e标志运行docker容器 但是我看不到替代品。当env变量可用时,会否执行Run ccommand? 问题答案: 图像是不可变的 Dockerfile定义了映像的构建过程。生成后,图像将是不可变的(无法更改)。运行时变量不会被添加到该不可变映像中。因此,Dockerfile是解决此问题的错误位置。 使用入口点脚本 您可能想做的是使

  • 2. Shell如何执行命令 2.1. 执行交互式命令 用户在命令行输入命令后,一般情况下Shell会fork并exec该命令,但是Shell的内建命令例外,执行内建命令相当于调用Shell进程中的一个函数,并不创建新的进程。以前学过的cd、alias、umask、exit等命令即是内建命令,凡是用which命令查不到程序文件所在位置的命令都是内建命令,内建命令没有单独的man手册,要在man手册

  • 我正试图用脚本方法安装一个模块,但我不知道如何用节点脚本语言安装,或者如果你有任何想法请与我分享。