MongoTracker.Core
1.0.1
See the version list below for details.
dotnet add package MongoTracker.Core --version 1.0.1
NuGet\Install-Package MongoTracker.Core -Version 1.0.1
<PackageReference Include="MongoTracker.Core" Version="1.0.1" />
<PackageVersion Include="MongoTracker.Core" Version="1.0.1" />
<PackageReference Include="MongoTracker.Core" />
paket add MongoTracker.Core --version 1.0.1
#r "nuget: MongoTracker.Core, 1.0.1"
#:package MongoTracker.Core@1.0.1
#addin nuget:?package=MongoTracker.Core&version=1.0.1
#tool nuget:?package=MongoTracker.Core&version=1.0.1
MongoTracker
MongoTracker — это мини-ORM (Object-Relational Mapping) библиотека для работы с MongoDB, которая позволяет автоматически отслеживать изменения в сущностях и выполнять массовые операции записи в базу данных. Библиотека упрощает работу с MongoDB, предоставляя удобный интерфейс для управления сущностями и их изменениями.
Основные возможности
Отслеживание изменений:
- Автоматическое отслеживание изменений в сущностях (добавление, обновление, удаление).
- Поддержка массовых операций записи (BulkWrite).
- Возможность точечного обновления изменений в сложных документах, включая вложенные объекты и коллекции.
Удобный интерфейс:
- Простое добавление сущностей в трекер.
- Легкая интеграция с существующими проектами.
Гибкость:
- Поддержка любых типов сущностей.
- Возможность настройки идентификаторов сущностей.
Производительность:
- Минимизация количества запросов к базе данных за счет массовых операций.
- Точечное обновление только измененных полей, что снижает нагрузку на базу данных.
Установка
Для использования MongoTracker в вашем проекте, добавьте его как зависимость через NuGet:
dotnet add package MongoTracker
Использование
1. Инициализация трекера
Для начала работы с MongoTracker необходимо создать экземпляр трекера, указав тип сущности и способ получения её идентификатора.
var mongoTracker = new MongoTracker<Guid, Book>(tk => tk.Id);
2. Добавление сущностей в трекер
Сущности можно добавлять в трекер по одной или списком. Трекер автоматически отслеживает изменения.
var book = new Book { Id = Guid.NewGuid(), Title = "Sample Book" };
mongoTracker.Add(book);
var anotherBook = await mongoDbContext.Books
.AsQueryable()
.FirstOrDefaultAsync(b => b.Id = idToFind);
anotherBook = mongoTracker.Track(anotherBook);
3. Массовая запись изменений
После добавления сущностей в трекер, изменения можно записать в базу данных одной операцией.
await mongoDbContext.Books.BulkWriteAsync(mongoTracker.Commit());
4. Точечное обновление изменений
MongoTracker позволяет отслеживать изменения даже в сложных документах, включая вложенные объекты и коллекции. При правильной настройке сущностей, библиотека автоматически определяет изменения и обновляет только те поля, которые были изменены.
Пример:
var book = new Book
{
Id = Guid.NewGuid(),
Title = "Sample Book",
Chapters = new List<BookChapter>
{
new BookChapter { Name = "Chapter 1", StartPage = 1, EndPage = 10 }
}
};
mongoTracker.Add(book);
// Изменяем название главы
book.Chapters[0].Name = "Updated Chapter 1";
// Трекер автоматически отследит изменение и обновит только поле Name в коллекции Chapters.
await mongoDbContext.Books.BulkWriteAsync(mongoTracker.Commit());
Пример проекта (MongoTracker.Sample)
В репозитории доступен пример проекта MongoTracker.Sample
, который демонстрирует основные возможности библиотеки. Пример включает:
Инициализацию базы данных:
- Создание коллекций авторов и книг.
- Заполнение базы данных тестовыми данными.
Отслеживание изменений:
- Добавление, обновление и удаление сущностей.
- Массовая запись изменений в базу данных.
Работу с различными типами сущностей:
- Авторы, книги, главы и аудиокниги.
Лицензия
MongoTracker распространяется под лицензией MIT.
Обратная связь
Если у вас есть вопросы, предложения или вы обнаружили ошибку, пожалуйста, создайте issue в репозитории проекта.
MongoTracker — это простой и мощный инструмент для работы с MongoDB, который поможет вам эффективно управлять данными в вашем приложении. Попробуйте его в своем проекте и убедитесь в его удобстве и производительности!
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- MongoDB.Driver (>= 3.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.