-
Notifications
You must be signed in to change notification settings - Fork 7
Getting Started
LiJundang edited this page May 13, 2019
·
12 revisions
LiteDB 是一个简单、快速、轻量级的嵌入式 .NET 文档数据库。由于受到 MongoDB 数据库的启发,LiteDB API 与 MongoDB 官方 .NET API 差不多(这里指 1.x 版)。
LiteDB 是一个 serverless 数据库, 不需要安装,只要复制LiteDB.dll 到你的 Bin 文件夹并添加引用即可。当然,如果你喜欢的话,也可以通过 NuGet 安装:Install-Package LiteDB
。如果需要在 Web 环境下运行,请确保 IIS 用户对数据文件所在文件夹有写权限。
一个简单的例子,用来展示如何存储和搜索文档:
// 创建你的 POCO 类实体
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public string[] Phones { get; set; }
public bool IsActive { get; set; }
}
// 打开数据库 (如果不存在自动创建)
using(var db = new LiteDatabase(@"C:\Temp\MyData.db"))
{
// 获取一个集合 (如果不存在创建)
var col = db.GetCollection<Customer>("customers");
// 创建新顾客实例
var customer = new Customer
{
Name = "John Doe",
Phones = new string[] { "8000-0000", "9000-0000" },
IsActive = true
};
// 插入新顾客文档 (Id 自增)
col.Insert(customer);
// 更新集合中的一个文档
customer.Name = "Joana Doe";
col.Update(customer);
// 使用文档的 Name 属性为文档建立索引
col.EnsureIndex(x => x.Name);
// 使用 LINQ 查询文档
var results = col.Find(x => x.Name.StartsWith("Jo"));
// 让我们在电话号码字段上创建一个索引 (使用表达式). 它是一个多键值索引
col.EnsureIndex(x => x.Phones, "$.Phones[*]");
// 现在我们可以查询电话号码
var r = col.FindOne(x => x.Phones.Contains("8888-5555"));
}
需要存储文件?没问题:使用 FileStorage。
// 从文件系统上传一个文件到数据库
db.FileStorage.Upload("my-photo-id", @"C:\Temp\picture-01.jpg");
// 然后下载
db.FileStorage.Download("my-photo-id", @"C:\Temp\copy-of-picture-01.jpg");
数据建模
索引
查询
数据库
版本 4 变化
Shell