MongoDB Cheat Sheet
Open MongoDB in cmd (For windows)
mongo
If
mongo
is not recognized as an internal or external command, operable program or batch file, then do the followings from this blog
Show All Databases
show dbs
Show Current Database
db
Create Or Switch Database
use acme
Drop Database🔴
> use mydb
> db.dropDatabase()
Create Collection
db.createCollection('posts')
Show Collections
show collections
Drop Collection 🔴
> use mydb
> db.usersCollection.drop()
Insert Row
db.posts.insert({
title: 'Post One',
body: 'Body of post one',
category: 'News',
tags: ['news', 'events'],
user: {
name: 'John Doe',
status: 'author'
},
date: Date()
})
Insert Multiple Rows
db.posts.insertMany([
{
title: 'Post Two',
body: 'Body of post two',
category: 'Technology',
date: Date()
},
{
title: 'Post Three',
body: 'Body of post three',
category: 'News',
date: Date()
},
{
title: 'Post Four',
body: 'Body of post three',
category: 'Entertainment',
date: Date()
}
])
Get All Rows from a collection
db.posts.find()
Get All Rows from a collection Formatted
db.posts.find().pretty()
Find Rows
db.posts.find({ category: 'News' })
Sort Rows in a collection
# asc
db.posts.find().sort({ title: 1 }).pretty()
# desc
db.posts.find().sort({ title: -1 }).pretty()
Count Rows in a collection
db.posts.find().count()
db.posts.find({ category: 'news' }).count()
Limit Rows in a collection
db.posts.find().limit(2).pretty()
Chaining example
db.posts.find().limit(2).sort({ title: 1 }).pretty()
Foreach
db.posts.find().forEach(function(doc) {
print("Blog Post: " + doc.title)
})
Find One Row
db.posts.findOne({ category: 'News' })
Find Specific Fields
db.posts.find({ title: 'Post One' }, {
title: 1,
author: 1
})
Update Row
db.posts.update({ title: 'Post Two' },
{
title: 'Post Two',
body: 'New body for post 2',
date: Date()
},
{
upsert: true
})
Update Specific Field
db.posts.update({ title: 'Post Two' },
{
$set: {
body: 'Body for post 2',
category: 'Technology'
}
})
Increment Field (\$inc)
db.posts.update({ title: 'Post Two' },
{
$inc: {
likes: 5
}
})
Rename Field
db.posts.update({ title: 'Post Two' },
{
$rename: {
likes: 'views'
}
})
Delete specific document from a collection
db.posts.remove({ title: 'Post Four' })
Sub-Documents
db.posts.update({ title: 'Post One' },
{
$set: {
comments: [
{
body: 'Comment One',
user: 'Mary Williams',
date: Date()
},
{
body: 'Comment Two',
user: 'Harry White',
date: Date()
}
]
}
})
Find By Element in Array (\$elemMatch)
db.posts.find({
comments: {
$elemMatch: {
user: 'Mary Williams'
}
}
}
)
Add Index
db.posts.createIndex({ title: 'text' })
Text Search
db.posts.find({
$text: {
$search: "\"Post O\""
}
})
Greater & Less Than
db.posts.find({ views: { $gt: 2 } })
db.posts.find({ views: { $gte: 7 } })
db.posts.find({ views: { $lt: 7 } })
db.posts.find({ views: { $lte: 7 } })
Get database size and index size in MB (Megabytes)
db.stats(1024*1024);
Export a collection in json format
mongoexport --db newdb -c usersCollection --out testBakcup.json
Import a collection from json file
mongoimport --db newdb -c usersCollectiontwo --file test.json
Export entire database including all collections (Local)
mongodump --db newdb
Export entire database including all collections (Cluster)
mongodump --uri="mongodb+srv://<Name>:<Password>@cluster0-pk6qf.mongodb.net/<DB_YOU_WANT_TO_EXPORT>?retryWrites=true&w=majority"
use
--collection <collection_name>
for only specific collection
Import entire database including all collections
mongorestore --db deleteme dump/newdb
newdb is the folder name that holds the database (deleteme) related files (.bson) etc.
To override same document with_id
use this method
Connect to cloud mongodb cluster from mongo shell
mongo "mongodb+srv://cluster0.g1re8.mongodb.net/<dbname>" --username <check_mongo_cloud_connect_shell>
Useful resources
- MongoDB Package Components (e.g. mongoimport, mongoexport, mongodump ) > https://docs.mongodb.com/manual/reference/program
Posted in • dev.to • gist.github.com
Top comments (0)