在MongoDB窗口中使用单个命令进行mongodb查询cli
问题描述:
我试图在单个命令中执行mongodb查询,这样我就可以在Windows软件中运行批处理脚本。 MongoDB的数据库已经建成,这里是我的工作Windows控制台命令和命令行查询:在MongoDB窗口中使用单个命令进行mongodb查询cli
C:\Program Files\MongoDB\Server\3.0\bin>mongo ds045565-a1.mongolab.com:45565/heroku_mydatabase
2017-09-01T09:14:05.196+0100 I CONTROL Hotfix KB2731284 or later update is not installed, will zero-out data files
MongoDB shell version: 3.0.7
connecting to: ds045565-a1.mongolab.com:45565/heroku_mydatabase
rs-ds045565:PRIMARY> db.auth("myusername","mypassword");db.getCollection('94081_DS_FuelNBS').find({})
{ "_id" : ObjectId("58ab4ae3bc5cf82663236b4f"), "code" : "D", "description" : "Diesel", "lastModified" : ISODate("2017-02-20T20:00:35.680Z") }
{ "_id" : ObjectId("58ab4ae3bc5cf82663236b50"), "code" : "H", "description" : "Hydrogen", "lastModified" : ISODate("2017-02-20T20:00:35.680Z") }
{ "_id" : ObjectId("58ab4ae3bc5cf82663236b51"), "code" : "P", "description" : "Petrol", "lastModified" : ISODate("2017-02-20T20:00:35.680Z") }
rs-ds045565:PRIMARY> exit
bye
如果我再尝试执行作为一个单一的Windows命令我没有得到比错误信息以外的任何响应输出:
C:\Program Files\MongoDB\Server\3.0\bin>mongo ds045565-a1.mongolab.com:45565/heroku_mydatabase mymongodbcommands.txt > output.txt
C:\ Program Files文件\ MongoDB的\服务器\ 3.0 \ BIN>
这里是mymongodbcommands.txt和output.txt的
mymongod内容bcommands.txt:
db.auth("myusername","mypassword");db.getCollection('94081_DS_FuelNBS').find({})
output.txt的
2017-09-01T09:15:41.604+0100 I CONTROL Hotfix KB2731284 or later update is not installed, will zero-out data files
MongoDB shell version: 3.0.7
connecting to: ds045565-a1.mongolab.com:45565/heroku_mydatabase
答
请考虑Scripts for Mongo Shell - 这是在做你想要什么的正确方法
至于例如,对于您的情况:
mongo ds045565-a1.mongolab.com:45565/heroku_mydatabase -u myusername -p mypassword --eval "var c = db.getCollection('94081_DS_FuelNBS').find(); while(c.hasNext()) {printjson(c.next())}"
你可以进一步建立你自己的mymongodbcommands.js
并通过它:
mongo host:port/db mymongodbcommands.js > output.txt
而js文件将包含身份验证,并且所需的命令
感谢Kostiantyn,这现在只是似乎吐出js代码.... 2017-09-01T10:00:03.343 + 0100修补程序KB2731284或更高版本的更新未安装我控制,将零出数据文件 MongoDB的外壳版本:3.0.7 连接到:ds045565-a1.mongolab.com:45565/heroku_ltpz6v5f { \t “_mongo”:连接ds045565-a1.mongolab.com:45565, \t “_db”:heroku_ltpz6v5f, \t “_collection”:heroku_ltpz6v5f.94081_DS_FuelNBS, \t “_ns”: “heroku_ltpz6v5f.94081_DS_FuelNBS”, \t “_query”:{ \t \t \t}, \t “_fields”:空, \t “_limit”:0, \t “_skip”:0, –
貌似传递给eval命令的语法不正确。尝试' - eval“var c = db.getCollection('94081_DS_FuelNBS')。find(); while(c.hasNext()){printjson(c.next())}”'我已经更新了相应的答案 – Kostiantyn
It作品,你是一个天才,你的老板应该提倡你。非常感谢 –