mirror of
https://github.com/namibia/awesome-cheatsheets.git
synced 2024-11-21 20:35:12 +00:00
commit
13b8d8b72d
225
databases/mongodb.sh
Normal file
225
databases/mongodb.sh
Normal file
@ -0,0 +1,225 @@
|
|||||||
|
# *****************************************************************************
|
||||||
|
# BASICS
|
||||||
|
# *****************************************************************************
|
||||||
|
|
||||||
|
# Connect MongoDB Shell
|
||||||
|
mongo # connects to mongodb://127.0.0.1:27017 by default
|
||||||
|
mongo --host <host> --port <port> -u <user> -p <pwd> # omit the password if you want a prompt
|
||||||
|
|
||||||
|
# Show All Databases
|
||||||
|
show dbs
|
||||||
|
|
||||||
|
|
||||||
|
# Show Current Database
|
||||||
|
db
|
||||||
|
|
||||||
|
|
||||||
|
# Create Or Switch Database
|
||||||
|
use <database_name>
|
||||||
|
|
||||||
|
|
||||||
|
# Drop Database
|
||||||
|
db.dropDatabase()
|
||||||
|
|
||||||
|
|
||||||
|
# Create Collection
|
||||||
|
db.createCollection('posts')
|
||||||
|
|
||||||
|
|
||||||
|
# Show Collections
|
||||||
|
show collections
|
||||||
|
|
||||||
|
|
||||||
|
# *****************************************************************************
|
||||||
|
# CRUD
|
||||||
|
# *****************************************************************************
|
||||||
|
|
||||||
|
# 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
|
||||||
|
db.posts.find()
|
||||||
|
|
||||||
|
|
||||||
|
# Get All Rows Formatted
|
||||||
|
db.posts.find().pretty()
|
||||||
|
|
||||||
|
|
||||||
|
# Find One Row
|
||||||
|
db.posts.findOne({ category: 'News' })
|
||||||
|
|
||||||
|
|
||||||
|
# Find Rows
|
||||||
|
db.posts.find({ 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'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
# Delete Row
|
||||||
|
db.posts.remove({ title: 'Post Four' })
|
||||||
|
|
||||||
|
|
||||||
|
# *****************************************************************************
|
||||||
|
# OTHER FUNCTIONS
|
||||||
|
# *****************************************************************************
|
||||||
|
|
||||||
|
# Sort Rows
|
||||||
|
db.posts.find().sort({ title: 1 }).pretty() # asc
|
||||||
|
db.posts.find().sort({ title: -1 }).pretty() # desc
|
||||||
|
|
||||||
|
|
||||||
|
# Count Rows
|
||||||
|
db.posts.find().count()
|
||||||
|
db.posts.find({ category: 'news' }).count()
|
||||||
|
|
||||||
|
|
||||||
|
# Limit Rows
|
||||||
|
db.posts.find().limit(2).pretty()
|
||||||
|
|
||||||
|
|
||||||
|
# Chaining
|
||||||
|
db.posts.find().limit(2).sort({ title: 1 }).pretty()
|
||||||
|
|
||||||
|
|
||||||
|
# Foreach
|
||||||
|
db.posts.find().forEach(function(doc) {
|
||||||
|
print("Blog Post: " + doc.title)
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
# Increment Field (\$inc)
|
||||||
|
db.posts.update({ title: 'Post Two' },
|
||||||
|
{
|
||||||
|
$inc: {
|
||||||
|
likes: 5
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
# Rename Field
|
||||||
|
db.posts.update({ title: 'Post Two' },
|
||||||
|
{
|
||||||
|
$rename: {
|
||||||
|
likes: 'views'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
# 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: 1 })
|
||||||
|
|
||||||
|
|
||||||
|
# Drop Index
|
||||||
|
db.posts.dropIndex("title_1")
|
||||||
|
|
||||||
|
|
||||||
|
# Hide/Unhide Indexes
|
||||||
|
db.posts.hideIndex("title_1")
|
||||||
|
db.posts.unhideIndex("title_1")
|
||||||
|
|
||||||
|
|
||||||
|
# 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 } })
|
Loading…
Reference in New Issue
Block a user