Что такое MongoDB и как его использовать в C#
MongoDB — это популярная NoSQL база данных, которая хранит данные в формате документов (обычно в JSON-подобном формате BSON). Она отличается гибкостью схемы, горизонтальной масштабируемостью и высокой производительностью, особенно для приложений с большим объёмом данных и высокими требованиями к скорости чтения/записи.
Основные особенности MongoDB:
- Документоориентированная: данные хранятся в виде документов, похожих на JSON.
- Гибкая схема: можно легко изменять структуру данных без миграций.
- Масштабируемость: поддерживает шардинг (горизонтальное масштабирование).
- Высокопроизводительные запросы: индексы, агрегации, геопространственные запросы.
Как использовать MongoDB на C#
1. Установка драйвера MongoDB для .NET
Чтобы работать с MongoDB на C#, используйте официальный драйвер MongoDB.Driver. Установите его через NuGet:
dotnet add package MongoDB.Driver
2. Подключение к базе данных
Создайте соединение с сервером MongoDB:
using MongoDB.Driver;
var client = new MongoClient("mongodb://localhost:27017");var database = client.GetDatabase("testDatabase");
3. Работа с коллекциями
Коллекция в MongoDB аналогична таблице в реляционных базах данных. Пример работы с коллекцией:
var collection = database.GetCollection<BsonDocument>("testCollection");
4. Вставка данных
Добавьте документ в коллекцию:
var document = new BsonDocument{ { "name", "Иван" }, { "age", 30 }, { "city", "Москва" }};collection.InsertOne(document);
5. Поиск данных
Найдите документы по условию:
var filter = Builders<BsonDocument>.Filter.Eq("name", "Иван");var result = collection.Find(filter).ToList();
6. Обновление данных
Обновите существующий документ:
var update = Builders<BsonDocument>.Update.Set("age", 31);collection.UpdateOne(filter, update);
7. Удаление данных
Удалите документ:
collection.DeleteOne(filter);
Пример полного кода
using MongoDB.Bson;
using MongoDB.Driver;
class Program
{
static void Main()
{
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("testDatabase");
var collection = database.GetCollection<BsonDocument>("users");
// Вставка
var user = new BsonDocument
{
{ "name", "Михаил" },
{ "age", 25 },
{ "city", "Санкт-Петербург" }
};
collection.InsertOne(user);
// Поиск
var filter = Builders<BsonDocument>.Filter.Eq("name", "Михаил");
var result = collection.Find(filter).FirstOrDefault();
Console.WriteLine(result.ToJson());
}
}Дополнительные возможности
- Агрегация: для сложных аналитических запросов.
- Индексы: для ускорения поиска.
- Транзакции: поддержка многодокументных транзакций (начиная с MongoDB 4.0).
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.