Command Line
| --help |
Show command line options |
| --nodb |
Start without a db, you can connect later with new Mongo() or connect() |
| --shell |
After running a .js file from the command line, stay in the shell rather than terminating |
Special Command Helpers
Non-javascript convenience macros:
| help |
Show help |
| db.help() |
Show help on db methods |
| db.myColl.help() |
Show help on collection methods |
| show dbs |
Print a list of all databases on this server |
| use dbname |
Set the db variable to represent usage of dbname on the server |
| show collections |
Print a list of all collections for current database |
| show users |
Print a list of users for current database |
| show profile |
Print most recent profiling operations that took >= 1ms |
Basic Shell Javascript Operations
| db |
The variable that references the current database object / connection. Already defined for you in your instance. |
| db.auth(user,pass) |
Authenticate with the database (if running in secure mode). |
| coll = db.collection |
Access a specific collection within the database. |
| cursor = coll.find(); |
Find all objects in the collection. See queries. |
| coll.remove(objpattern); |
Remove matching objects from the collection. objpattern is an object specifying fields to match. E.g.: coll.remove( { name: "Joe" } ); |
| coll.save(object) |
Save an object in the collection, or update if already there.
If your object has a presave method, that method will be called before the object is saved to the db (before both updates and inserts) |
coll.insert(object) |
Insert object in collection. No check is made (i.e., no upsert) that the object is not already present in the collection. |
coll.update(...) |
Update an object in a collection. See the Updating documentation; update() has many options. |
| coll.ensureIndex( { name : 1 } ) |
Creates an index on tab.name. Does nothing if index already exists. |
| coll.update(...) |
|
| coll.drop() |
Drops the collection coll |
| db.getSisterDB(name) |
Return a reference to another database using this same connection. Usage example: db.getSisterDB('production').getCollectionNames() |
Queries
| coll.find() |
Find all. |
| it |
Continue iterating the last cursor returned from find(). |
| coll.find( criteria ); |
Find objects matching criteria in the collection. E.g.: coll.find( { name: "Joe" } ); |
| coll.findOne( criteria ); |
Find and return a single object. Returns null if not found. If you want only one object returned, this is more efficient than just find() as limit(1) is implied. You may use regular expressions if the element type is a string, number, or date: coll.find( { name: /joe/i } ); |
| coll.find( criteria, fields ); |
Get just specific fields from the object. E.g.: coll.find( {}, {name:true} ); |
| coll.find().sort( {field:1[, field:1] }); |
Return results in the specified order (field ASC). Use -1 for DESC. |
| coll.find( criteria ).sort( { field : 1 } ) |
Return the objects matching criteria, sorted by field. |
| coll.find( ... ).limit(n) |
Limit result to n rows. Highly recommended if you need only a certain number of rows for best performance. |
| coll.find( ... ).skip(n ) |
Skip n results. |
| coll.count() |
Returns total number of objects in the collection. |
| coll.find( ... ).count() |
Returns the total number of objects that match the query. Note that the number ignores limit and skip; for example if 100 records match but the limit is 10, count() will return 100. This will be faster than iterating yourself, but still take time. |
More information: see queries.
Error Checking
| db.getLastError() |
Returns error from the last operation. |
| db.getPrevError() |
Returns error from previous operations. |
| db.resetError() |
Clear error memory. |
Administrative Command Helpers
| db.cloneDatabase(fromhost) |
Clone the current database from the other host specified. fromhost database must be in noauth mode. |
| db.copyDatabase(fromdb, todb, fromhost) |
Copy fromhost/fromdb to todb on this server. fromhost must be in noauth mode. |
| db.repairDatabase() |
Repair and compact the current database. This operation can be very slow on large databases. |
| db.addUser(user,pwd) |
Add user to current database. |
| db.getCollectionNames() |
get list of all collections. |
| db.dropDatabase() |
Drops the current database. |
Opening Additional Connections
| db = connect("<host>:<port>/<dbname>") |
Open a new database connection. One may have multiple connections within a single shell, however, automatic getLastError reporting by the shell is done for the 'db' variable only. See here for an example of connect(). |
| conn = new Mongo("hostname") |
Open a connection to a new server. Use getDB() to select a database thereafter. |
| db = conn.getDB("dbname") |
Select a specific database for a connection |
Miscellaneous
| Object.bsonsize(db.foo.findOne()) |
prints the bson size of a db object (mongo version 1.3 and greater) |
| db.foo.findOne().bsonsize() |
prints the bson size of a db object (mongo versions predating 1.3) |
For a full list of functions, see the shell API.
Examples
The MongoDB source code includes a jstests/ directory with many mongo shell scripts.
PLEASE POST QUESTIONS IN THE USER GROUPS FORUM. Post non-question comments and helpful hints here.
blog comments powered by Disqus