一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库

bab015d2491c43ce60455636aee8c40c.png

8eba49b08795ba5dfeb3de56c9144cc1.jpeg

前言

今天给大家分享一个小巧、快速、轻量级的 .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项目源代码

0b80629094da1b63e4c8a7b2aaefa99f.png

创建一个LiteDBCwTest控制台

3795e6f07ec07b6b879a733f63dd8ffd.png cac3d4a1055597da365867e7afe22cfb.png

安装LiteDB包

搜索LiteDB包,点击安装。

22350143447adadc977ee90e944f9cfd.png

定义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);
            }
        }
    }
}

创建成功的数据库文件

0edf5c8c72b099987e1db7d0ec813802.png

LiteDB.Studio管理工具下载

  • https://github.com/mbdavid/LiteDB.Studio/releases

用于查看和编辑 LiteDB v5 文档的图形用户界面工具。

48ac59d9bc1fad3761168ac47ca5ccda.png

LiteDB.Studio管理数据

连接MyCustomerData数据库

bf516fb0aa2b8d92fd0712e84aa5ccd6.png 0fc26210ac7ba27d63462fb08a2cf335.png

查看customers表数据

93005e49d8179e2b30ee9eed7168c973.png

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

GitHub源码地址:https://github.com/mbdavid/LiteDB

官方文档地址:https://www.litedb.org/api/

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

bd1414ba47b1eaa14a988c7429bd5313.gif

9cb274730aa9b5c08c86cee0a475e479.gif

4b7aad49b1cdb2b432eb38817d454f98.jpeg


学习是一个永无止境的过程,你知道的越多,你不知道的也会越多,在有限的时间内坚持每天多学一点,你一定能成为你想要成为的那个人。不积跬步无以至千里,不积小流无以成江河!!!

7c27faa82bb889fc2f62c2c5989bb6d5.gif

See you next good day

f7fdf96273c748ae145987e89a69a7b2.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值