如何通过shell脚本执行mongo命令? (我的不起作用)

问题描述 投票:1回答:1

我正在尝试在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
mongodb mongo-shell
1个回答
0
投票

使用此命令创建my_script.js文件:

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

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

1。从OS命令行运行JS脚本:

在操作系统提示符下执行此操作:

> mongo localhost/testDB my_script.js

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

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" }

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

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" }


参考:
© www.soinside.com 2019 - 2024. All rights reserved.