Configure themongo
Shell
On this page
Customize the Prompt
You may modify the content of the prompt by setting the variableprompt
in themongo
shell. Theprompt
variable can hold strings as well as JavaScript code. Ifprompt
holds a function that returns a string,mongo
can display dynamic information in each prompt.
You can add the logic for the prompt in the.mongorc.jsfile to set the prompt each time you start up themongo
shell.
Customize Prompt to Display Number of Operations
For example,to create amongo
shell prompt with the number of operations issued in the current session, define the following variables in themongo
shell:
cmdCount
=
1
;
prompt
=
function
()
{
return
(
cmdCount
++
)
+
"
>
"
;
}
The prompt would then resemble the following:
1
>
2
>
3
>
Customize Prompt to Display Database and Hostname
To create amongo
shell prompt in the form of<database>@<hostname>$
, define the following variables:
host
=
db
.
serverStatus
().
host
;
prompt
=
function
()
{
return
db
+
"@"
+
host
+
"$ "
;
}
The prompt would then resemble the following:
test@myHost1$
Customize Prompt to Display Up Time and Document Count
To create amongo
shell prompt that contains the system up time_and_the number of documents in the current database, define the followingprompt
variable in themongo
shell:
prompt
=
function
()
{
return
"Uptime:"
+
db
.
serverStatus
().
uptime
+
" Documents:"
+
db
.
stats
().
objects
+
"
>
"
;
}
The prompt would then resemble the following:
Uptime
:
5897
Documents
:
6
>
Use an External Editor in themongo
Shell
You can use your own editor in themongo
shell by setting theEDITOR
environment variable_before_starting themongo
shell.
export
EDITOR
=
vim
mongo
Once in themongo
shell, you can edit with the specified editor by typingedit<variable>
oredit<function>
, as in the following example:
Define a function
myFunction
:function
myFunction
()
{
}
Edit the function using your editor:
edit
myFunction
The command should open the
vim
edit session. When finished with the edits, save and exitvim
edit session.In the
mongo
shell, typemyFunction
to see the function definition:myFunction
The result should be the changes from your saved edit:
function
myFunction
()
{
print
(
"This was edited"
);
}
NOTE
Asmongo
shell interprets code edited in an external editor, it may modify code in functions, depending on the JavaScript compiler. Formongo
may convert1+1
to2
or remove comments. The actual changes affect only the appearance of the code and will vary based on the version of JavaScript used but will not affect the semantics of the code.
Change themongo
Shell Batch Size
Thedb.collection.find()
method is the JavaScript method to retrieve documents from acollection. Thedb.collection.find()
method returns acursorto the results; however, in themongo
shell, if the returned cursor is not assigned to a variable using thevar
keyword, then the cursor is automatically iterated up to 20 times to print up to the first 20 documents that match the query. Themongo
shell will promptTypeit
to iterate another 20 times.
You can set theDBQuery.shellBatchSize
attribute to change the number of documents from the default value of20
, as in the following example which sets it to10
:
DBQuery
.
shellBatchSize
=
10
;