前言
今天给大家分享一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库:LiteDB。本篇文章主要是介绍LiteDB和在.NET中如何使用。
LiteDB介绍
LiteDB 是一个小巧、快速和轻量级的 .NET NoSQL 嵌入式数据库。
-
无服务器的 NoSQL 文档存储
-
简单的 API,类似于 MongoDB
-
100% 的 C# 代码支持 .NET 4.5 / NETStandard 1.3/2.0,以单个 DLL(不到 450KB)形式提供
-
线程安全
-
支持 ACID,完整的事务支持
-
写入失败后的数据恢复(WAL 日志文件)
-
使用 DES(AES)加密算法对数据文件进行加密
-
使用属性或流畅的映射器 API 将 POCO 类映射为 BsonDocument
-
存储文件和流数据(类似于 MongoDB 的 GridFS)
-
单一数据文件存储(类似于 SQLite)
-
对文档字段建立索引以实现快速搜索
-
支持 LINQ 查询
-
提供类似于 SQL 的命令来访问/转换数据
-
LiteDB Studio - 数据访问的精美用户界面
-
开源且免费供所有人使用,包括商业用途
LiteDB应用场景
可以在以下场景中使用 LiteDB:
-
桌面/本地小型应用程序
-
应用程序文件格式
-
小型网站/应用程序
-
每个账户/用户数据存储一个数据库的情况
LiteDB项目源代码
创建一个LiteDBCwTest控制台
安装LiteDB包
搜索LiteDB
包,点击安装。
定义Customer数据模型
public class Customer
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// Name
/// </summary>
public string Name { get; set; }
/// <summary>
/// Age
/// </summary>
public int Age { get; set; }
/// <summary>
/// Email
/// </summary>
public string Email { get; set; }
}
LiteDB数据创建、插入、查询和删除
namespace LiteDBCwTest
{
internal class Program
{
static void Main(string[] args)
{
//创建或打开数据库文件
using (var db = new LiteDatabase(@"MyCustomerData.db"))
{
// 获取集合(相当于表)
var collection = db.GetCollection<Customer>("customers");
var customers = new List<Customer>()
{
new Customer
{
Name = "追逐时光者",
Age = 18,
Email = "17854545@gmail.com"
},
new Customer
{
Name = "大姚",
Age = 30,
Email = "16556545@gmail.com"
}
};
// 批量插入数据
collection.Insert(customers);
// 查询数据
var result = collection.FindAll();
foreach (var c in result)
{
Console.WriteLine($"Name: {c.Name}, Age: {c.Age}, Email: {c.Email}");
}
// 根据条件查询数据
var query = Query.EQ("Age", 30);
var resultByAge = collection.Find(query);
foreach (var c in resultByAge)
{
Console.WriteLine($"Name: {c.Name}, Age: {c.Age}, Email: {c.Email}");
}
// 删除数据
var deletedResult = collection.Delete(resultByAge.FirstOrDefault().Id);
}
}
}
}
创建成功的数据库文件
LiteDB.Studio管理工具下载
用于查看和编辑 LiteDB v5 文档的图形用户界面工具。
LiteDB.Studio管理数据
连接MyCustomerData数据库
查看customers表数据
项目源码地址
更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。
GitHub源码地址:GitHub - mbdavid/LiteDB: LiteDB - A .NET NoSQL Document Store in a single data file
文章转载自: 追逐时光者