如何使用 .bat 文件调用 MongoDB 命令

8

我将尝试使用 .bat 文件执行 MongoDB 命令(用于创建数据库)

为此,我尝试了以下方法:

cd C:\Program Files\MongoDB\Server\3.4\bin
mongo 
mongo --eval "use MyDatabase"
pause

但它会报错 missing ; before statement @(shell eval):1:4
我该如何解决这个问题?
附注:我已经查看了MongoDB SyntaxError: missing ; before statement @(shell)
3个回答

11

你可以尝试使用:

cd Program Files\MongoDB\Server\3.4\bin
mongo.exe 
mongo.exe --eval "use MyDatabase"
pause

我正在使用一个.bat文件,它能正常工作并包含以下内容

cd \Program Files\MongoDB\Server\3.2\bin
mongod.exe
pause

编辑

我测试了一个类似这样的文件,它可以正常工作(创建数据库、集合和文档)

mongodb.bat

cd \Program Files\MongoDB\Server\3.2\bin
mongo.exe db-mydb --eval "db.yourCollection.insert({key:'value'});"
pause

编辑2

如果您想在后台运行您的.bat文件,我制作了一个正常工作的.VBS文件。

mongodb.VBS

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:\Path\To\Your\mongodb.bat" & Chr(34), 0
Set WshShell = Nothing

希望能对你有所帮助


它没有显示任何错误,但它没有创建数据库。 - Divyang Desai
1
如果您想创建一个新的数据库,我认为您需要在其中插入一个新文档。 - Sparw
1
你是指集合吗?我尝试使用添加 mongo.exe --eval "db.createCollection('testcollecation')" 但没有成功 :( - Divyang Desai
你可以试试这样的方式吗?mongo.exe --eval "db.yourCollection.insert({"key":"value"})" - Sparw

3
  • 将此代码放入您的批处理文件中。
  • 它将在两个不同的管理员特权cmd窗口中启动并激活mongodb。
  • 请在调整为您的环境之前检查路径。

START "runas /user:administrator" cmd /K "cd C:\Program Files\MongoDB\Server\3.4\bin & mongod.exe --dbpath c:\data\db"

TIMEOUT /T 10 START

START "runas /user:administrator" cmd /K "cd C:\Program Files\MongoDB\Server\3.4\bin & mongo.exe "


0

试试这个:

cd C:\Program Files\MongoDB\Server\3.4\bin
mongo.exe 
mongo.exe --eval "use MyDatabase"
pause

或者使用一个名为 script.txt 的文本文件来存储你的命令,并编写批处理文件:

cd C:\Program Files\MongoDB\Server\3.4\bin
mongo.exe mydb < script.txt

如果文件位于不同的位置,可以使用完整路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接