Шпаргалка по MongoDB, часто используемые команды MongoDB для разработчиков.
MongoDB — это ориентированная на документы база данных NoSQL с открытым исходным кодом, которая предназначена для хранения большого объема данных, а также позволяет очень эффективно работать с этими данными. Она хранит данные в форме документов JSON. MongoDB предоставляет SQL-подобный язык запросов для поиска записей на основе внутренней структуры самого документа. Хранилища документов обеспечивают высокую гибкость и часто используются для работы с периодически меняющимися данными.
В этом посте я расскажу о нескольких командах MongoDB, которые чаще всего используются разработчиками.
Операции с базами данных
1. Show All Databases
show dbs
2. Show current Database
db
3. Create or switch to new Database
use hashnode
4. Delete Database
db.dropDatabase()
Коллекции
1. Show All Collections of Current Database
show collections
2. Create new collection
db.createCollection('posts')
Create Documents
1. Insert One document
db.posts.insertOne(
{title: "blog post title", body: "blog post content"}
)
или
db.posts.insert(
{title: "blog post title", body: "blog post content"}
)
2. Insert Multiple document
db.posts.insert( [
{title: "blog post 1 title", body: "blog post 1 content"},
{title: "blog post 2 title", body: "blog post 2 content"},
])
Read Documents
1. Find One document
db.posts.findOne()
2. Find Multiple documents
db.posts.find()
/* returns a cursor - show 20 results - "it" to display more */
3. Find Multiple documents with formatted json
db.posts.find().pretty()
/* returns a cursor - show 20 results - "it" to display more */
4. Find documents by field value.
db.posts.find({'title' : 'blog 1 title'})
Обновление документов
1. Update one
db.posts.updateOne({"_id": 1}, {$set: {"title": 'updated title'}})
2. Update Multiple
/* update only specific fields */
db.posts.update({"category": "technology"}, {$set: {"category": 'computer science'}})
3. Upsert complete Row
db.posts.update({ '_id' : 1 },
{
title: 'Post one',
body: 'New body for post 1',
},
{
upsert: true
})
4. Increment Field Value
db.posts.update({ "_id": 1 },
{
$inc: {
views: 5
}
})
Удаление документов
1. Delete
db.posts.remove({ title: 'Post 1' })
Сортировка
Fetch results by sorting on field.
# ascending order
db.posts.find().sort({ title: 1 }).pretty()
# descending order
db.posts.find().sort({ title: -1 }).pretty()
Limit and Offset
Fetch results by pagination.
/* Skip 3 results*/
db.posts.find({}).skip(10)
/* Fetch only 3 results*/
db.posts.find({}).limit(3)
/* Sort by title , Skip first 10 results, fetch only next 3 documents*/
db.posts.find({}).sort({"title": 1}).skip(10).limit(3)
Добавление и удаление индекса
1. Add Index
/* Create Index on single field */
db.posts.createIndex({"title": 1})
/* Create compound Index */
db.posts.createIndex({"title": 1, "date": 1})
2. Drop Index
db.posts. dropIndex("title_1")
Range Queries
Find documents by range query
/* find posts where views are greater than 50 */
db.posts.find({'views' : { '$gt' : 50 }})
/* find posts where views are greater than or equal to 50 */
db.posts.find({'views' : { '$gte' : 50 }})
/* find posts where views are less than 50 */
db.posts.find({'views' : { '$lt' : 50 }})
/* find posts where views are less than or equal to 50 */
db.posts.find({'views' : { '$lte' : 50 }})
Текстовый поиск
1. Create Text Index on field
db.posts.createIndex({content: "text"})
2. Search by Text
db.posts.find({
$content: {
$search: "post content"
}
})