小さくて美しく、強くてパワフル:. NET領域における小さなNo SQLデータベースの解明

小さくて美しく、強くてパワフル:. NET領域における小さなNo SQLデータベースの解明

NETの世界では、データベースの選択が不可欠です。軽量なNo SQLデータベースLiteDBをご紹介します。小さくて強力な、プロジェクトに高速で柔軟なデータストレージソリューションを提供します。初心者でもベテランでも、LiteDBはあなたの右腕になります!

最后更新 2024/03/08 5:14
开源项目甄选
预计阅读 4 分钟
分类
.NET
标签
.NET C# データベースの種類 LiteDB NoSQL

はじめに

NETの世界では、データベースの選択が不可欠です。軽量なNo SQLデータベースLiteDBをご紹介します。小さくて強力な、プロジェクトに高速で柔軟なデータストレージソリューションを提供します。初心者でもベテランでも、LiteDBはあなたの右腕になります!

LiteDBの紹介

LiteDBは、. NET用に設計されたC#マネージドコードで書かれたオープンソースの組み込みNo SQLデータベースです。BSON Binary JSONフォーマットに基づいてデータを格納し、豊富なクエリ操作をサポートし、複雑なサーバーをインストールして管理する必要はありません。LiteDBは、小規模プロジェクト、デスクトップアプリケーション、マイクロサービスアーキテクチャのデータストレージニーズに最適です。

LiteDBの

  • MongoDBに似たシンプルなAPI
  • 1つのDLL内の. NET 4.5 /NET Standard 1.3/2.0用の100% C#コード(450kb未満)
  • ■安全なスレッド
  • ·书き込み后のデータリカバリ(WALログファイル)
  • ·DES (AES)暗号化技術を使用したデータファイルの暗号化
  • ·プロパティまたはFluentマッパーを使用してPOCOクラスをAPIBsonDocumentにマッピングする
  • ファイルとストリームデータの保存(MongoDBのGridFSなど)
  • ·単一データファイルのストレージ(SQLiteなど)
  • ·高速検索のためのドキュメントフィールドのインデックス作成
  • ·クエリのLINQサポート
  • ·データへのアクセス/変換のためのSQLライクなコマンド
  • オープンソース、商用利用を含む誰にでも無料

LiteDBの特長

** 軽量 **:LiteDBはサーバーをインストールせず、. NETプロジェクトに直接統合され、スペースが少なく、高速に実行できます。

*** 高性能 **:インデックス作成、クエリ最適化、非同期操作をサポートし、データの読み書きの効率性を確保します。

** 使いやすい **:簡潔なAPIと豊富なドキュメントサポートにより、簡単に始めることができます。

** ACIDトランザクションのサポート **:データの一貫性と整合性を確保します。

** クロスプラットフォーム **:LiteDBは、Windows、Linux、macOSなどの複数のプラットフォームで実行できます。

** 美しいUIサポート **:LiteDB Studio-データアクセスのための美しいユーザーインターフェイス。

LiteDBの使用方法

** インストール **:NuGetパッケージマネージャからLiteDBを簡単にインストールできます。

** データベースの作成 **:プロジェクト内にLiteDatabaseインスタンスを作成し、データベースファイルパスを指定します。

*** 定義モデル **:データモデルを定義するC#クラスを作成します。

** データの保存とクエリ **:データの保存、クエリ、更新操作にLiteDBが提供するAPIを使用します。

素敵なUI。

Lite.Studioデータベースを管理および視覚化するための新しいUI

特徴は

LiteDBはデータと構造操作のためのSQLライク言語をサポートする。非常に似たSQLリレーショナル言語を使用して、データベースを挿入、更新、削除、またはクエリできます。

LINQ式ラムダ関数を使用すると、C#コードでスムーズなAPIクエリを作成できます。

新しいLiteDB.Studio 管理ツールはすべてのSQLコマンドをサポートします。

また、クエリエンジンから詳細なEXPLAIN PLANを取得して、書き込まれたクエリが最適なパフォーマンスで実行されるかどうかをチェックすることもできます。

実戦の事例

LiteDBを使用して. NETプロジェクトでデータの追加、削除、削除、変更を実装する方法を簡単な実例で示します。

// Create your POCO class
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; }
}

// Open database (or create if doesn't exist)
using(var db = new LiteDatabase(@"MyData.db"))
{
    // Get customer collection
    var col = db.GetCollection<Customer>("customers");

    // Create your new customer instance
    var customer = new Customer
    {
        Name = "John Doe",
        Phones = new string[] { "8000-0000", "9000-0000" },
        Age = 39,
        IsActive = true
    };

    // Create unique index in Name field
    col.EnsureIndex(x => x.Name, true);

    // Insert new customer document (Id will be auto-incremented)
    col.Insert(customer);

    // Update a document inside a collection
    customer.Name = "Joana Doe";

    col.Update(customer);

    // Use LINQ to query documents (with no index)
    var results = col.Find(x => x.Age > 20);
}

より複雑なデータモデルの利用

// DbRef to cross references
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; }
}

// Re-use mapper from global instance
var mapper = BsonMapper.Global;

// "Products" and "Customer" are from other collections (not embedded document)
mapper.Entity<Order>()
    .DbRef(x => x.Customer, "customers")   // 1 to 1/0 reference
    .DbRef(x => x.Products, "products")    // 1 to Many reference
    .Field(x => x.ShippingAddress, "addr"); // Embedded sub document

using(var db = new LiteDatabase("MyOrderDatafile.db"))
{
    var orders = db.GetCollection<Order>("orders");

    // When query Order, includes references
    var query = orders
        .Include(x => x.Customer)
        .Include(x => x.Products) // 1 to many reference
        .Find(x => x.OrderDate <= DateTime.Now);

    // Each instance of Order will load Customer/Products references
    foreach(var order in query)
    {
        var name = order.Customer.Name;
        ...
    }
}

まとめまとめまとめ

LiteDBは、軽量No SQLデータベースとして、小型で高性能で使いやすいことから、. NET開発の世界で広く認知されています。初心者でも上級開発者でも、LiteDBを使用してプロジェクトのデータストレージソリューションを試してみてください。

ソースコードのアドレス

https://github.com/mbdavid/LiteDB

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2026/04/22

バージョン別の. NETサポート状況(250 7 0 7更新)

仮想マシンとテストマシンを使用して、各バージョンのオペレーティングシステムの. NETサポートをテストします。オペレーティングシステムのインストール後、対応するランタイムを測定し、スターダストエージェントをパスとして実行できます。

继续阅读
同分类 / 同标签 2026/02/07

AOTの使用経験

プロジェクトの最初から、新しい機能が追加されたり、新しい構文が使用されたりするたびに、AOTリリーステストを行うという良い習慣を身につける必要があります。

继续阅读