LiteDB实践使用

NOSQL之LiteDB使用详解 一:什么是LiteDB 定义:LiteDB是一种文档型单文件数据库,基于Key-Value方式存取数据。LiteDB 是一个 .NET 开发的小型快速轻量级的 NoSQL 嵌入式数据库,特性: 无服务器的 NoSQL 文档存储,数据存储在单一文件中 类似 MongoDB 的简单 AP。 也可以参考LiteDB,以下是链接; LiteDB官网下载http://www.litedb.org/ 我们可以打开VS2019,通过Nuget控制台,为项目添加LiteDB的引用;... 阅读详情

本文是使用LiteDB编写一个词条的增加、显示和删除的功能。主要是想体现一下使用LiteDB的奇妙。实现界面如下:


实现代码:

1、首先封装好操作LiteDB的底层,下面给出仅供参考的几个方法:

  • 获取数据库路径类;
    public class DB
    {
        // Get a unique database name in TestResults folder
        public static string Path()
        {
            var path = System.IO.Path.GetFullPath(
                System.AppDomain.CurrentDomain.BaseDirectory +
                string.Format("../Data/litedb-{0}.db", "litedb-2f6d864e-7f00-412d-aa5d-58593ad2f15d"));

            return path;
        }
    }

  • 封装数据模型实体;
    public class FilterWordInfo
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public DateTime Addtime { get; set; }
        public string UserName { get; set; }
    }
  • 封装数据转换类;
/// <summary>
    /// 数据转换
    /// </summary>
    public class BsonToObject
    {
        public static T ConvertTo<T>(BsonDocument bd)
            where T:new()
        {
            T model = new T();
            PropertyInfo[] propertyInfos = model.GetType().GetProperties();
            foreach (var property in propertyInfos)
            {
                if (property != null && bd.ContainsKey(property.Name))
                {
                    property.SetValue(model, bd[property.Name], null);
                }
            }
            return model;
        }
        public static IList<T> ConvertToList<T>(List<BsonDocument> dbList)
            where T:new()
        {
            IList<T> _List = new List<T>();
            foreach(var bd in dbList)
            {
                T _t=ConvertTo<T>(bd);
                if(_t!=null)
                {
                    _List.Add(_t);
                }
            }
            return _List;
        }
    }
  • 编写LiteDB数据操作类;
public static class LiteDBOP
    {
        public static int Save<T>(T obj)
            where T:new()
        {
            // Open data file (or create if not exits)
            using (var db = new LiteDatabase(DB.DB.Path()))
            {
                // Get a collection (or create, if not exits)
                var col = db.GetCollection<T>("filterword");
                // Insert new customer document
                var value = col.Insert(obj);
                return value.AsInt32;
            }
        }
        public static bool Update<T>(T obj)
            where T : new()
        {
            // Open data file (or create if not exits)
            using (var db = new LiteDatabase(DB.DB.Path()))
            {
                // Get a collection (or create, if not exits)
                var col = db.GetCollection<T>("filterword");
                // Update a document inside a collection
                var success = col.Update(obj);
                return success;
            }
        }
        public static bool Delete(int docId)
        {
            // Open data file (or create if not exits)
            using (var db = new LiteDatabase(DB.DB.Path()))
            {
                // Get a collection (or create, if not exits)
                var col = db.GetCollection("filterword");
                var success = col.Delete(docId);
                return success;
            }
        }
        public static BsonDocument FindById(int docId)
        {
            // Open data file (or create if not exits)
            using (var db = new LiteDatabase(DB.DB.Path()))
            {
                // Get a collection (or create, if not exits)
                var col = db.GetCollection("filterword");
                var doc = col.FindById(1);
                return doc;
            }
        }
        public static T FindById<T>(int docId)
            where T:new()
        {
            // Open data file (or create if not exits)
            using (var db = new LiteDatabase(DB.DB.Path()))
            {
                // Get a collection (or create, if not exits)
                var col = db.GetCollection("filterword");
                var doc = col.FindById(1);
                return BsonToObject.ConvertTo<T>(doc);
            }
        }
        public static IList<BsonDocument> FindAll()
        {
            // Open data file (or create if not exits)
            using (var db = new LiteDatabase(DB.DB.Path()))
            {
                // Get a collection (or create, if not exits)
                var col = db.GetCollection("filterword");
                var doc = col.FindAll().ToList();
                return doc;
            }
        }
        public static IList<T> FindAll<T>()
            where T:new()
        {
            // Open data file (or create if not exits)
            using (var db = new LiteDatabase(DB.DB.Path()))
            {
                // Get a collection (or create, if not exits)
                var col = db.GetCollection<T>("filterword");
                var docs = col.FindAll();
                return docs.ToList();
            }
        }
    }

界面调用数据实现就不在此多说了,其他的和我们日常编写的C#代码一样。这样就完成了一个LiteDB的一个demo。



C# LiteDB 使用教程 通过本教程,你已经了解了 LiteDB 的基本使用方法,包括安装、创建数据库、数据建模、CRUD 操作、索引的使用和事务处理等。LiteDB 以其轻量级、嵌入式和易用性的特点,为开发者提供了一个高效的数据存储解决方案。在实际项目中,你可以根据具体需求进一步探索 LiteDB 的高级功能,如数据加密、文件存储等。希望本教程能帮助你更好地使用 LiteDB 进行数据管理。 阅读详情

相关推荐

C# LiteDB 初使用

LiteDB 是一个轻量级的 .NET 数据库,它完全用 C# 编写,不需要安装任何外部依赖或服务器。通过 NuGet 安装 LiteDB。在 Visual Studio 中,右键点击你的项目 -> 选择“管理 NuGet 程序包” -> 搜索“LiteDB” -> 点击“安装”。LiteDB 是一个强大且易于使用的嵌入式数据库,非常适合用于各种 C# 项目。通过遵循上述步骤,你可以轻松地在你的 C# 应用程序中使用 LiteDB。LiteDB 会在你的应用程序路径下创建一个。查询,插入,更新,删除数据。

fhqiwmc的博客 3057

谈谈 .NET8 平台中对 LiteDB 的 CRUD 操作

@ 目录1、同步版 LiteDB2、异步版 LiteDB.Async1、.net cli 命令创建项目2、项目添加相关 nuget 包3、改造项目结构4、改造项目代码1、谈谈 sqlite 和 litedb 的 ACID 事务支持?2、谈谈 sqlite 和 litedb 的稳定性和可靠性?3、谈谈 sqlite 和 litedb 的应用场景?LiteDBLiteDB 简介LiteDB - 一个单...

dotNET跨平台 2630

LiteDB 数据存储与检索效率优化的最佳实践指导

在当今数字化时代,数据处理和存储变得至关重要。对于小型项目或者嵌入式系统而言,需要一种轻量级、高效且易于使用的数据库解决方案。LiteDB 作为一款嵌入式的 NoSQL 数据库,因其零配置、易于集成等特点,受到了开发者的青睐。然而,若要充分发挥其性能优势,就需要对数据存储和检索效率进行优化。本文将深入探讨 LiteDB 数据存储与检索效率优化的最佳实践。

专业 FMEA 软件 CoreFMEA 的博客 1203

.NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)

此处还是以默认的 WeatherForecast (天气预报) 的数据为例,分别对两种类型的数据库做相应的 crud 操作,并对比测试性能。这里我们使用的 .net8 版本, 创建 WebAppDbTest 项目。

ChaITSimpleLove的博客 3133

山东大学机器学习(实验一内容)——线性回归

1. 描述 第一个练习将为你提供线性回归练习。这些练习已经用Matlab进行了广泛的测试,但它们也应该在Octave中工作,它被称为“免费版的Matlab”。如果你使用的是Octave,那就是 一定要安装Image包(可在Windows中作为选项使用)安装程序,可从Octave-Forge获得Linux。 2.线性回归 回想一下,线性回归模型是 hθ(x)=θTx=∑j=0nθjxj h_{\th...

HachiLin的博客 4108

量化交易如何利用涨停板策略收割散户

量化交易通过算法筛选特定特征的股票,在早盘建立底仓后,利用大单拉升制造抢筹假象,吸引散户跟风买入。这种策略利用了散户的认知偏差,如锚定效应和从众心理,导致次日低开闷杀。从技术实现来看,量化策略通过控制买入量、隐藏真实意图等手段,精准执行隔日砸策略。对于短线交易者而言,理解量化资金的运作逻辑和识别危险涨停板的特征至关重要,这包括观察封板时间、盘口挂单、量价关系等多维度数据。在算法主导的市场中,散户需要升级交易工具和策略,从预测走势转向应对走势,才能避免成为量化策略的牺牲品。

weixin_33046983的博客 291

LiteDB Studio 使用教程

LiteDB Studio 使用教程 项目地址:https://gitcode.com/gh_mirrors/li/LiteDB.Studio 项目介绍 LiteDB Studio 是一个用于查看和编辑 LiteDB v5 文档的 GUI 工具。LiteDB 是一个开源的、嵌入式 NoSQL 数据库,完全用 C# 托管代码编写,专为 .NET 设计。它基于 BSON(Binary JSON)格式存...

gitblog_00283的博客 1577

Excel VBA | 一键批量生成对账单

根据对账单总表一键批量生成N家独立的客户对账单。

Microgoblins的博客 6985

终极指南:使用LiteDB Studio轻松管理LiteDB数据库

LiteDB Studio是一款专业的LiteDB数据库图形界面工具,让您能够轻松查看和编辑LiteDB文档。无论您是数据库管理员还是开发人员,这个免费工具都能提供简单直观的操作体验。 ## 📁 项目结构与主要文件 LiteDB Studio项目结构清晰,主要包含以下核心文件: - **LiteDB.Studio.sln** - Visual Studio解决方案文件,用于构建整个项目 -

gitblog_00290的博客 788

InternVL 3.5 深度解析:开源多模态模型的新里程碑

InternVL 3.5是由上海人工智能实验室OpenGVLab团队推出的开源多模态大模型,在推理能力、效率和灵活性方面取得突破。该模型采用ViT-MLP-LLM架构,包含60亿参数的InternViT-6B视觉编码器和多种规格的语言模型骨干。核心创新包括:1)Cascade RL强化学习框架,通过离线热身和在线强化两阶段训练提升推理能力;2)ViR视觉分辨率路由器,动态调整图像处理分辨率以优化计算效率;3)DvD动态视觉token压缩技术。模型系列涵盖2B到241B参数规模,满足从边缘设备到高性能计算的不

m0_47999117的博客 1030

因果表示学习 (Causal Representation Learning, CRL)

传统的机器学习,尤其是深度学习,非常擅长学习数据中的相关性 (Correlation)。但它常常会走“捷径”,学到一些虚假的、不稳定的“表面联系”。一个AI模型在学习识别“牛”时,如果训练数据里所有的牛都在绿色的草地上,模型很可能会学到一个错误的规则:“牛 = 四条腿的生物 + 绿色背景”。你给它一张牛在海滩上的照片,它就可能不认识了。因果表示学习的目标,就是让模型超越这种表面相关性,去学习数据背后。

Xuxiansir的博客 1183

在正式项目中使用 LiteDB

原文:http://yahch.com/post.aspx?id=1 LiteDB 是一个 NoSQL 数据库,特点是 MongoDB like 和 0 配置。100% 原汁原味的 C# 开发, Release 只有一个 DLL,官方有一下适用场景:移动App,桌面小应用程序,特有的文件格式,...

chengzui9951的博客 1358

AMDGPU SVM VRAM Migration 实现详解

AMD正在基于DRM SVM框架重构SVM实现,该框架即将广泛应用。本文分析了AMD开发者提交的POC验证版本的技术方案。该架构分为三层:AMDGPU SVM映射层、DRM Pagemap通用框架层和AMDGPU迁移后端硬件驱动层。系统涉及三个地址空间转换:VRAM分配器空间、HPA/PFN空间和GPU PTE地址空间。关键数据结构包括设备级迁移基础设施amdgpu_pagemap、迁移临时BO包装器amdgpu_svm_bo等。该方案通过地址空间转换实现VRAM迁移功能,目前仍处于POC阶段,设计可能变更

图形/计算GPU的驱动与虚拟化技术分享园地 870

LiteDB详解

LiteDB详解

R3333355726856的博客 2128

RK3588部署YOLOv11与RKNN全流程教程

本文详细介绍了在RK3588开发板上部署YOLOv11目标检测模型的全流程。主要内容包括:PC端CUDA/cuDNN环境配置、Anaconda虚拟环境搭建、RKNN Toolkit2安装;YOLOv11模型从PyTorch到ONNX再到RKNN的格式转换;以及RK3588开发板的系统配置、RKNPU驱动安装和最终推理实现。教程提供了完整的代码示例,帮助开发者快速在边缘设备上实现高效的AI推理应用,涵盖从环境准备到实时检测的全套解决方案。

FJN110的博客 378

Python 爬虫实战:爬取股票数据做 K 线图可视化

摘要:本文介绍基于Python的股票数据爬取与K线图可视化全流程技术方案。通过Requests库抓取东方财富网股票数据,使用Pandas进行清洗处理,并利用mplfinance库实现专业K线图绘制。文章详细讲解了数据爬取接口分析、反爬策略配置、K线图绘制方法(包含基础K线图和带均线的进阶版本),以及核心统计指标计算。该方案可应用于股票价格趋势分析,为投资决策提供数据支持,同时强调了数据使用的合规性和技术优化方向。

2503_91057718的博客 2049

LiteDB.FSharp 项目推荐

LiteDB.FSharp 项目推荐 1. 项目基础介绍和主要编程语言 LiteDB.FSharp 是一个为 LiteDB 数据库提供高级 F# 支持的开源项目。LiteDB 是一个嵌入式的 NoSQL 数据库,适用于 .NET 平台。LiteDB.FSharp 通过提供类型安全的查询表达式和 F# 特有的类型(如记录、联合类型等)的序列化支持,增强了 LiteDB 的功能。 该项目的主要编程语言...

gitblog_01010的博客 401

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LiteDB

LiteDB - 一个使用.net  开发的NoSQL文档存储的单文件数据库。官网:www.litedb.org GitHub:https://github.com/mbdavid/LiteDB LiteDB是一个小型的、快速的和轻量级的NoSQL嵌入式数据库,特点: 无服务器的NoSQL文档存储 类似于MongoDB的简单API 单文件(小于300kb),100%的C#代码,支持.NE...

芝麻麻雀-Asp.Net学习之路 3769

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

我与LiteDB的工作

在本文中,您将看到一个桌面应用程序,该应用程序创建许多对象并在其中搜索文本。 最近,我正在为我的程序寻找存储系统。这是一个桌面应用程序,可创建许多对象并在其中搜索文本。所以我想:“我为什么不尝试一些新的东西。我可以使用某种文档数据库代替SQL数据库。

寒冰屋的专栏 1503

通用的CRUD之LiteDB

Lite增删改查

.将 1061

LiteDB源码解析系列(1)LiteDB介绍

最近利用端午假期,我把LiteDB的源码仔细的阅读了一遍,酣畅淋漓,确实收获了不少。后面将编写一系列关于LteDB的文章分享给大家,希望这么好的源码不要被埋没。 1.LiteDB是什么 这是一个小型的.NET平台开源的NoSQL类型的轻量级文件数据库。特点是小和快,由于完全由C#'编写,所以可以支持LINQ,创建数据库是一个单一文件,类似Sqlite。 关于它的中文介绍大家可以看一下.net...

weixin_30621919的博客 901

LiteDB.FSharp 使用教程

LiteDB.FSharp 使用教程 1、项目介绍 LiteDB.FSharp 是一个为 LiteDB 提供高级 F# 支持的库,它允许 LiteDB 理解 F# 类型,如记录、联合、映射等,并支持通过 F# 引用表达式进行类型安全的查询。LiteDB 是一个嵌入式的 NoSQL 数据库,适用于 .NET 平台。 2、项目快速启动 安装 首先,通过 NuGet 安装 LiteDB.FSharp 包...

gitblog_00266的博客 961

.net core API中使用LiteDB

LiteDB

weixin_43632687的博客 999

【UWP】使用 LiteDB 存储数据

序言: 在 UWP 中,常见的存储数据方式基本上就两种。第一种方案是 UWP 框架提供的 ApplicationData Settings 这一系列的方法,适用于存放比较轻量的数据,例如存个 Boolean 类型的设置项这种是最适合不过的了。另一种方案是用 Sqlite 这种数据库,适合存放数据量大或者结构复杂,又或者需要根据条件查询的场合,例如开发个宝可梦数据查询,或者 Jav 图书馆(咳咳)...

山有山的高度,海有海的胸怀。 859

如何快速上手 LiteDB Studio:管理 LiteDB 数据库的终极 GUI 工具

LiteDB Studio 是一款专为 LiteDB v5 设计的图形用户界面(GUI)工具,让用户能够轻松查看和编辑文档型数据库。作为轻量级 NoSQL 数据库 LiteDB 的配套工具,它提供了直观的操作界面,无需复杂命令即可完成数据库管理任务,是 .NET 开发者的理想选择。 ## ???? 项目核心功能与技术架构 ### 什么是 LiteDB Studio? LiteDB Studio ...

gitblog_00865的博客 344

【免费下载】 LiteDB Studio 使用教程

本教程将指导您了解并使用 [LiteDB Studio](https),这是一个用于查看和编辑 LiteDB 数据库文档的图形界面工具。 ## 1. 项目目录结构及介绍 LiteDB Studio 的项目结构如下: ``` - LiteDB Studio/ - gitignore # Git 忽略文件规则 - gitmodules # 子模块配置文...

gitblog_00214的博客 1056
上一篇: lucene.net 3.0.3、结合盘古分词进行搜索的小例子(分页功能)
下一篇: 文本操作的底层
wingahi
博客等级 码龄15年 15粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值