1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ajeelee-LiteDB

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

LiteDB — встраиваемый NoSQL хранилище документов для .NET в одном файле данных

Присоединиться к чату на https://gitter.im/mbdavid/LiteDB Статус сборки Статус сборки


LiteDB — это небольшое, быстрое и легковесное NoSQL встраиваемое базовое хранилище данных для .NET.

  • Серверный NoSQL документальный магазин

  • Простой API, схожий с MongoDB

  • 100% код на C#, предназначен для .NET 4.5 / NETStandard 1.3/2.0 в одной DLL (менее 450кБ)

  • Устойчивость к многопоточному выполнению

  • Поддержка транзакций с полной поддержкой ACID

  • Восстановление данных после ошибки записи (файл журнала WAL)

  • Шифрование файла данных с помощью алгоритма AES

  • Преобразование ваших POCO классов в BsonDocument с использованием атрибутов или Fluent Mapper API

  • Хранение файлов и потоковых данных (похоже на GridFS в MongoDB)

  • Хранение данных в одном файле (похоже на SQLite)

  • Индексация полей документов для быстрого поиска

  • Поддержка LINQ для запросов

  • Похожие на SQL команды для доступа/преобразования данных

  • LiteDB Studio — удобный графический интерфейс для работы с данными

  • Открытый исходный код и бесплатен для всех — включая коммерческое использование

  • Установка из NuGet: Install-Package LiteDB## Новая версия v5

  • Новый движок хранения данных

  • Отсутствие блокировки для операций чтения (read)

  • Блокировка записи для каждой коллекции (несколько писателей)

  • Внутренние/системные коллекции

  • Новый синтаксис, похожий на SQL

  • Новый движок запросов (поддерживает проекцию, сортировку, фильтрацию, запросы)

  • Частичная загрузка документов (уровень корня)

  • И многое другое!

Lite.Studio

Новый графический интерфейс для управления и визуализации вашей базы данных:

LiteDB.Studio

Документация

Просмотреть Wiki для полной документации. Для упрощённой китайской версии, проверьте здесь.

Сообщество LiteDB

Поддержите развитие сообщества пользователей LiteDB, ответив на этот короткий опрос.

Как использовать LiteDB

Пример быстрого хранения и поиска документов:

// Создайте ваш класс POCO
public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    public string[] Phones { get; set; }
    public bool IsActive { get; set; }
}

// Откройте базу данных (или создайте её, если она ещё не существует)
using(var db = new LiteDatabase(@"MyData.db"))
{
    // Получите коллекцию клиентов
    var col = db.GetCollection<Customer>("customers");
}
```    // Создайте новый экземпляр клиента
    var customer = new Customer
    { 
        Name = "Иван Петров", 
        Phones = new string[] { "8000-0000", "9000-0000" }, 
        Age = 39,
        IsActive = true
    };

    // Создайте уникальный индекс в поле Name
    col.EnsureIndex(x => x.Name, true);

    // Вставьте новый документ клиента (Id будет автоматически увеличиваться)
    col.Insert(customer);

    // Обновите документ внутри коллекции
    customer.Name = "Ивана Петрова";

    col.Update(customer);

    // Используйте LINQ для запроса документов (без использования индекса)
    var results = col.Find(x => x.Age > 20);
}

Использование Fluent Mapper и кросс-документных ссылок для более сложных моделей данных

```C#
// DbRef для кросс-ссылок
public class Order
{
    public ObjectId Id { get; set; }
    public DateTime OrderDate { get; set; }
    public Address ShippingAddress { get; set; }
    public Customer Customer { get; set; }
    public List<Product> Products { get; set; }
}        

// Использование маппера из глобального экземпляра
var mapper = BsonMapper.Global;

// "Products" и "Customer" являются другими коллекциями (не встроенные документы)
mapper.Entity<Order>()
    .DbRef(x => x.Customer, "customers")   // 1 к 1/0 ссылка
    .DbRef(x => x.Products, "products")    // 1 к многим ссылка
    .Field(x => x.ShippingAddress, "addr"); // Вложенный поддокумент
            
using(var db = new LiteDatabase("MyOrderDatafile.db"))
{
    var orders = db.GetCollection<Order>("orders");
        
    // При запросе заказа, включаются ссылки
    var query = orders
        .Include(x => x.Customer)
        .Include(x => x.Products) // 1 к многим ссылка
        .Find(x => x.OrderDate <= DateTime.Now);

    // Каждый экземпляр заказа будет загружать ссылки на клиента/продукты
    foreach(var order in query)
    {
        var name = order.Customer.Name;
        ...
    }
}

Где использовать?

Fluent Mapper и кросс-документные ссылки используются для работы со сложными моделями данных, где требуется эффективное управление отношениями между различными коллекциями. Это особенно полезно при работе с большими объемами данных и необходимостью быстрого доступа к связанным объектам.- Десктопные/локальные небольшие приложения

  • Формат файла приложения
  • Небольшие веб-сайты/приложения
  • Одна база данных на пользователя/аккаунт хранение данных

Расширения

Журнал изменений

Детали изменений для каждого выпуска документируются в заметках к выпускам.

Цифровая подпись

LiteDB цифрово подписывается благодаря SignPath

Лицензия

MIT


Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

LiteDB — документоориентированное нереляционное хранилище данных для .NET в одном файле. www.litedb.org Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ajeelee-LiteDB.git
git@api.gitlife.ru:oschina-mirror/ajeelee-LiteDB.git
oschina-mirror
ajeelee-LiteDB
ajeelee-LiteDB
master