MongoTracker.Core 1.0.1

There is a newer version of this package available.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MongoTracker.Core" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MongoTracker.Core" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="MongoTracker.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MongoTracker.Core --version 1.0.1
                    
#r "nuget: MongoTracker.Core, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MongoTracker.Core@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MongoTracker.Core&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=MongoTracker.Core&version=1.0.1
                    
Install as a Cake Tool

MongoTracker

MongoTracker — это мини-ORM (Object-Relational Mapping) библиотека для работы с MongoDB, которая позволяет автоматически отслеживать изменения в сущностях и выполнять массовые операции записи в базу данных. Библиотека упрощает работу с MongoDB, предоставляя удобный интерфейс для управления сущностями и их изменениями.

Основные возможности

  1. Отслеживание изменений:

    • Автоматическое отслеживание изменений в сущностях (добавление, обновление, удаление).
    • Поддержка массовых операций записи (BulkWrite).
    • Возможность точечного обновления изменений в сложных документах, включая вложенные объекты и коллекции.
  2. Удобный интерфейс:

    • Простое добавление сущностей в трекер.
    • Легкая интеграция с существующими проектами.
  3. Гибкость:

    • Поддержка любых типов сущностей.
    • Возможность настройки идентификаторов сущностей.
  4. Производительность:

    • Минимизация количества запросов к базе данных за счет массовых операций.
    • Точечное обновление только измененных полей, что снижает нагрузку на базу данных.

Установка

Для использования 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, который демонстрирует основные возможности библиотеки. Пример включает:

  1. Инициализацию базы данных:

    • Создание коллекций авторов и книг.
    • Заполнение базы данных тестовыми данными.
  2. Отслеживание изменений:

    • Добавление, обновление и удаление сущностей.
    • Массовая запись изменений в базу данных.
  3. Работу с различными типами сущностей:

    • Авторы, книги, главы и аудиокниги.

Лицензия

MongoTracker распространяется под лицензией MIT.

Обратная связь

Если у вас есть вопросы, предложения или вы обнаружили ошибку, пожалуйста, создайте issue в репозитории проекта.


MongoTracker — это простой и мощный инструмент для работы с MongoDB, который поможет вам эффективно управлять данными в вашем приложении. Попробуйте его в своем проекте и убедитесь в его удобстве и производительности!

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.3 143 6/16/2025
1.0.2 143 6/14/2025
1.0.1 700 6/11/2025
1.0.0 798 6/11/2025