LiteDB 是一个轻量级、快速、易用的 .NET NoSQL 嵌入式数据库,完全用 C# 托管代码开发,并且是免费和开源的。它非常适合在移动应用(Xamarin iOS/Android)和小型的桌面/Web 应用中使用。
主要特点
- 简单易用的 API,类似于 MongoDB
- 100% C# 代码,支持 .NET 4.5 / NETStandard 1.3/2.0,其核心代码只有不到 450KB
- 线程安全
- 写入失败后的数据恢复(WAL 日志文件)
- 使用 DES(AES)加密技术进行数据文件加密
- 可使用属性或流畅的映射器 API 将 POCO 类映射到 BsonDocument
- 支持存储文件和流式数据(类似于 MongoDB 中的 GridFS)
- 单个数据文件存储(类似于 SQLite)
- 支持索引文档字段以实现快速搜索
- 支持 LINQ 查询
- 提供类似 SQL 的命令来访问和转换数据
- 开源免费,可用于商业用途
LiteDB 还提供一个用于访问和管理数据的客户端LiteDBStudio
,其功能简单强大,链接在文末。
使用方法
1、 安装LiteDB
可以通过 NuGet 包管理器安装 LiteDB
bash
dotnet add package LiteDB --version 5.0.17
//或
NuGet\Install-Package LiteDB -Version 5.0.17
2、 创建数据库
csharp
using LiteDB;
var db = new LiteDatabase("mydb.db");
3、新建Person
类
csharp
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
4、插入数据
csharp
var col = db.GetCollection<Person>("people");
var person = new Person
{
Name = "John Doe",
Age = 30
};
col.Insert(person);
5、查询数据
csharp
var results = col.Find(x => x.Age > 20);
foreach (var person in results)
{
Console.WriteLine(person.Name);
}
6、更新数据
csharp
var person = col.FindById(1);
person.Name = "Jane Doe";
col.Update(person);
7、删除数据
csharp
col.Delete(1);
适用场景
LiteDB 非常适合以下场景:
- 桌面/本地化的小应用程序
- 应用程序文件格式(Application file format)
- 小型 web 应用程序
- 一个账户/用户一个数据库的数据存储
- 少量并发写操作
官网推荐的一些第三方工具链接
- 一个 GUI 查看器工具: https://github.com/falahati/LiteDBViewer
- 一个 GUI 编辑器工具: https://github.com/JosefNemec/LiteDbExplorer
- LiteDB 管理工具: https://darwich.mx/downloads/
- Lucene.NET 目录: https://github.com/sheryever/LiteDBDirectory
- LINQPad 支持: https://github.com/adospace/litedbpad
- F# 支持: https://github.com/Zaid-Ajaj/LiteDB.FSharp
- PowerShell 封装: https://github.com/v2kiran/PSLiteDB
源码链接:
LiteDB:https://github.com/mbdavid/LiteDB
LiteDBStudio:https://github.com/mbdavid/LiteDB.Studio