How to execute mongo commands through shell scripts? How to execute mongo commands through shell scripts? bash bash

How to execute mongo commands through shell scripts?


You can also evaluate a command using the --eval flag, if it is just a single command.

mongo --eval "printjson(db.serverStatus())"

Please note: if you are using Mongo operators, starting with a $ sign, you'll want to surround the eval argument in single quotes to keep the shell from evaluating the operator as an environment variable:

mongo --eval 'db.mycollection.update({"name":"foo"},{$set:{"this":"that"}});' myDbName

Otherwise you may see something like this:

mongo --eval "db.test.update({\"name\":\"foo\"},{$set:{\"this\":\"that\"}});"> E QUERY    SyntaxError: Unexpected token :


Put your mongo script into a .js file.

Then execute mongo < yourFile.js

Ex:

demo.js //file has your script

use sample  //db nameshow collections

keep this file in "c:\db-scripts"

Then in cmd prompt go to "c:\db-scripts"

C:\db-scripts>mongo < demo.js

This will execute the code in mongo and shows the output

C:\db-scripts>mongo < demo.jsMongo shell version: 3.0.4Connecting to: testswitched to db sampleusers   //collection nametasks   //collection namebyeC:\db-scripts>


This works for me under Linux:

mongo < script.js