Что такое MongoDB и как его использовать в C#

  • Михаил
  • 8 мин. на прочтение
  • 4
  • 10 Feb 2026
  • 10 Feb 2026

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).