嵌入式Nosql数据库——LiteDB
LiteDB是一个开源的 .NET 开发的小型快速轻量级的 NoSQL 嵌入式数据库,特性:
无服务器的 NoSQL 文档存储,数据存储在单一文件中
类似 MongoDb 的简单 API
100% C# 代码,支持 .NET 3.5,单一 DLL,可从 NuGet 安装: Install-Package LiteDB
支持 ACID 事务控制
日志模式下的写失败恢复
可存储 POCO 类或者 BsonDocument
支持文件存储和数据流存储 (like GridFS in MongoDB)
单一数据文件存储,类似 SQLite
文档字段索引,用于快速搜索
支持使用 LINQ 查询
Shell 命令行 (get on - try this online version
自生成id测试
/// <summary>
/// 自生成id测试
/// </summary>
public void AutoId_Test()
{
//打开或者创建新的数据库
using (var db = new LiteDatabase("sample.db"))
{
var cs_int = db.GetCollection<EntityInt>("int");
// int类型自生成Id
var cint_1 = new EntityInt { Name = "Using Int 1" };
var cint_2 = new EntityInt { Name = "Using Int 2" };
var cint_5 = new EntityInt { Id = , Name = "Using Int 5" }; // set Id, do not generate (jump 3 and 4)!
var cint_6 = new EntityInt { Id = , Name = "Using Int 6" }; // for int, 0 is empty
var cint_7 = new EntityInt { Name = "Using Int 7" };
cs_int.Insert(cint_1);
cs_int.Insert(cint_2);
cs_int.Insert(cint_5);
cs_int.Insert(cint_6);
cs_int.Insert(cint_7);
Console.WriteLine(cint_1.Id);
Console.WriteLine(cint_2.Id);
Console.WriteLine(cint_5.Id);
Console.WriteLine(cint_6.Id);
Console.WriteLine(cint_7.Id); //guid
var guid = Guid.NewGuid();
var cguid_1 = new EntityGuid { Id = guid, Name = "Using Guid" };
var cguid_2 = new EntityGuid { Name = "Using Guid 1" };
var cguid_3 = new EntityGuid { Name = "Using Guid 2" };
Console.WriteLine("Guid.NewGuid()="+guid);
Console.WriteLine(cguid_1.Id);
Console.WriteLine(cguid_2.Id);
Console.WriteLine(cguid_3.Id);
// oid
var oid = ObjectId.NewObjectId();
var coid_1 = new EntityOid { Name = "ObjectId-1" };
var coid_2 = new EntityOid { Id = oid, Name = "ObjectId-2" };
Console.WriteLine("ObjectId.NewObjectId()=" + oid);
Console.WriteLine(coid_1.Id);
Console.WriteLine(coid_2.Id);
// string 没有自动生成的id
var cstr_1 = new EntityString { Name = "Object using String" };
Console.WriteLine(cstr_1.Id); }
}
/// <summary>
/// int类型ID
/// </summary>
public class EntityInt
{
public int Id { get; set; }
public string Name { get; set; }
}
/// <summary>
/// Guyid类型ID
/// </summary>
public class EntityGuid
{
public Guid Id { get; set; }
public string Name { get; set; }
}
/// <summary>
/// LiteDB.ObjectId
/// </summary>
public class EntityOid
{
public ObjectId Id { get; set; }
public string Name { get; set; }
}
/// <summary>
/// 字符串类型
/// </summary>
public class EntityString
{
public string Id { get; set; }
public string Name { get; set; }
}

如上图所示:
int类型id自动增长,当你设置了大于0的id时(5),将跳过3、4,后面的从5开始增长。
guid类型的id需要我们自己生成。
oid类型id也是需要自己生成。
string 类型无法自动生成id。
对于其它功能:
大文件、并发、json、linq、filestorage等功能,大家可参考源代码里面的单元测试,如下:

嵌入式Nosql数据库——LiteDB的更多相关文章
- .NET平台开源项目速览(7)关于NoSQL数据库LiteDB的分页查询解决过程
在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑) 与 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB中,介绍了LiteDB的基本使用情况以及部 ...
- .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB
今天给大家介绍一个不错的小巧轻量级的NoSQL文件数据库LiteDB.本博客在2013年也介绍过2款.NET平台的开源数据库: 1.[原创]开源.NET下的XML数据库介绍及入门 2.[原创]C#开源 ...
- 在实际项目中使用LiteDB NoSQL数据库
LiteDB 是一个 NoSQL 数据库,特点是 MongoDB like 和 0 配置.100% 原汁原味的 C# 开发, Release 只有一个 DLL,官方有一下适用场景:移动App,桌面小应 ...
- 小型单文件NoSQL数据库SharpFileDB初步实现
小型单文件NoSQL数据库SharpFileDB初步实现 我不是数据库方面的专家,不过还是想做一个小型的数据库,算是一种通过mission impossible进行学习锻炼的方式.我知道这是自不量力, ...
- NOSQL 数据库 CodernityDB
CodernityDB 是一个开源的纯 Python 实现的.无第三方依赖.支持多平台的 NoSQL 数据库. 关键特性: 纯 Python 开发 支持多索引 快速 (每秒将近10万的写入和超过10万 ...
- 15个nosql数据库
1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案.当数据量达到50GB以上 ...
- HBase与MongDB等NoSQL数据库对照
HBase概念学习(十)HBase与MongDB等NoSQL数据库对照 转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数 ...
- 10个出色的NoSQL数据库
http://www.infoq.com/research/nosql-databases?utm_source=infoqresearch&utm_campaign=lr-homepage ...
- HBase概念学习(十)HBase与MongDB等NoSQL数据库对照
转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数据库,配合以MongDB,Tair等存储. MySQL因为开源,而且生态 ...
随机推荐
- "Hello world!"团队第一次会议
今天是我们"Hello world!"团队第一次召开会议,今天的会议可能没有那么正式,但是我们一起确立了选题——基于WEB的售票系统.博客内容是: 1.会议时间 2.会议成员 3. ...
- 【alpha】Scrum站立会议第2次....10.17
小组名称:nice! 小组成员:李权 于淼 杨柳 刘芳芳 项目内容:约跑app 1.任务进度 成员 已完成 今日完成 李权 数据库设计 消息发送代码实现 于淼 注册.登录界面,以及登录界面后台代码.发 ...
- Python实现FTP服务功能
本文从以下三个方面, 阐述Python如何搭建FTP服务器 一. Python搭建FTP服务器 二. FTP函数释义 三. 查看目录结构 四. 上传下载程序 一. Python搭建FTP服务器 1. ...
- SQL SERVER技术内幕之8 分组集
分组集就是分组(GROUP BY子句)使用的一组属性,在传统的SQL中,一个聚合查询只能定义一个分组集: 假设现在不想生成4个单独的结果集,而是希望生成一个统一的结果集,其中包含所有4个分组集的聚合 ...
- C/S结构
C/S结构 编辑 同义词 C/S架构一般指C/S结构 C/S 结构,即大家熟知的客户机和服务器结构.它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Serv ...
- PHP中Session和Cookie的探究
一.Session (1)Session的由来以及介绍 Session:在计算机中,尤其是在网络应用中,称为“会话控制”,生存时间为用户在浏览某个网站时,从进入网站到关闭这个网站所经过的这段时间,也就 ...
- perf record -c
如果perf record -c -c后面接的是sample_period,也就是说你让这个事件没 我的loop进程一直在执行,我的CPU的频率是2.6G hz,也就是说每一秒会有2,600,000, ...
- 【转】log4j.properties文件的配置
一.前言 log4j使用的还是比较多的,但是对于其配置又很难描述清楚要怎么配置,说明我自己对于log4j的配置并不是非常熟悉,所以在网上找了一篇详尽的 博文转载,在此非常感谢原文作者的辛苦付出,如有需 ...
- WASM
WASM WebAssembly https://webassembly.org/ https://github.com/appcypher/awesome-wasm-langs https://me ...
- Spring MVC架构浅析
阅读目录 Spring MVC概述 Spring MVC框架的特点 Spring MVC工作原理 Spring MVC概述 Spring的web框架围绕DispatcherServlet设计,Disp ...