CRUD операции MongoDB
Создание документа
db.books.insertOne(
{
title: "gRPC: запуск и эксплуатация облачных приложений. Go и Java для Docker и Kubernetes",
author: "Касун Индрасири",
year: 2020
}
)
{
acknowledged: true,
insertedId: ObjectId("635988799c0531ba95d3586d")
}
Создание нескольких документов
db.books.insertMany(
[
{title:"Go: идиомы и паттерны проектирования",author:"Боднер Джон","year":2022},
{title:"Высоконагруженные приложения. Программирование, масштабирование, поддержка",author:"Клеппман Мартин",year:2021}
]
)
Поиск документов
Query
// Найти все документы
db.books.find()
// Найти документы по совпадению конкретного поля
db.books.find({year: 2021})
// Найти документы по условию на кокретное поле
db.books.find({year: {$gte: 2021}})
// Найти документы по условию на кокретное поле и вернуть первый
db.books.findOne({year: {$gte: 2021}})
// Найти документа по одному ИЛИ по второму условию.
db.books.find({$or:[{year:{$gte: 2021}},{author: "Касун Индрасири"}]})
Projection
db.books.findOne({year: {$gte: 2021}},{ title:1, _id: 0 })
db.books.findOne({year: {$gte: 2021}},{ title:0, _id: 0 })
Обновление документов
db.collection.updateOne(<filter>, <update>, <options>)
db.collection.updateMany(<filter>, <update>, <options>)
db.collection.replaceOne(<filter>, <update>, <options>)
updateOne
db.books.updateOne(
{
title: "Высоконагруженные приложения. Программирование, масштабирование, поддержка"
},
{$set: {rating: 5}}
)
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
- Update Operators reference
- Так же может быть передан документ содержащий дополнительные параметры обновления. Подробнее в документации.
updateMany
db.books.updateMany(
{rating: null},
{$set:
{rating: 3}
}
)
{
acknowledged: true,
insertedId: null,
matchedCount: 2,
modifiedCount: 2,
upsertedCount: 0
}
- Разные операторы в MongoDB по разному обрабатывают значение null. Подробнее в документации.
replaceOne
db.books.replaceOne(
{author: 'Ньюмен Сэм'},
{
title:"Создание микросервисов",
author: "Ньюмен Сэм",
year: 2016,
rating:3
},
{upsert:true}
)
- Пример притянут за уши и показывает в основном создание документа в рамках замены. Но можно так же и обновить или вставить.
- upsert - разрешает вставить если не найден результат.
MongoDB. Презентация - презентация по MongoDB в рамках курса HSE.