【问题标题】:How to execute mongo commands through shell scripts? (mine does not work)如何通过shell脚本执行mongo命令? (我的不工作)
【发布时间】:2020-02-20 14:19:10
【问题描述】:

我正在尝试在 mongo shell 中使用脚本 js。我正在读一本关于这个主题的书。我尝试了几个选项,例如在我的计算机上的特定位置打开 cmd。 我在这里找到了问题“如何通过 shell 脚本执行 mongo 命令?”,但似乎没有什么对我有用。我的 mongo 工作正常,只需在 cmd 中输入 mongo 即可进入 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

【问题讨论】:

  • 脚本文件应该与您尝试运行上述命令的目录相同
  • 是的,我做到了!
  • 还是不行
  • 例子,我想用.mongorc.js,但是放在合适的目录下也找不到。
  • 请告诉demo.js里有什么?

标签: mongodb mongo-shell


【解决方案1】:

用这个命令创建你的my_script.js 文件:

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

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


1.从操作系统命令行运行 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(即,执行 mongo,然后从 mongo 提示符):

mongo > use testDB
mongo > show collections

您将看到testColl 列出。

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

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


2.从 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" }

看到有两个具有不同_id 字段值的文档。

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


3.另一个例子:

创建一个名为script2.js的JS文件,内容如下:

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

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

mongo > load("script2.js")
{ "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }
{ "_id" : ObjectId("5e4ea10f276cde8fc5fedec5"), "a" : "hello" }



参考资料:

【讨论】:

    猜你喜欢
    • 2011-06-17
    • 2015-11-01
    • 1970-01-01
    • 2019-11-06
    • 2013-09-01
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多