嵌入式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因为开源,而且生态 ...
随机推荐
- 【Docker 命令】- pull命令
docker pull : 从镜像仓库中拉取或者更新指定镜像 语法 docker pull [OPTIONS] NAME[:TAG|@DIGEST] OPTIONS说明: -a :拉取所有 tagge ...
- C#的垃圾回收
C#中垃圾回收 GC.Collect();强制进行内存回收.
- Delphi DBGrid双击事件、单元格操作
1.得到当前格子中的内容:DBGrid1.Fields[DBGrid1.SelectedIndex].DisplayText;把DBGrid1.SelectedIndex改为你所希望引用的字段就可以了 ...
- 【数据库】】MySQL之desc查看表结构的详细信息
在mysql中如果想要查看表的定义的话:有如下方式可供选择 1.show create table 语句: show create table table_name; 2.desc table_nam ...
- stm32f4xx标准外设固件库
STM32F4的相关资料:http://www.stmcu.org/document/list/index/category-523 一.标准固件库简介 本文下载的是STM32F4xx_DSP_Std ...
- Java序列简单使用
package javatest; import java.io.*; public class SerializableTest implements Serializable { public s ...
- xsy1436-括号游戏
题目 递归定义括号序列: 空串是括号序列 (A)是一个括号序列,其中A为括号序列 AB是一个括号序列,其中A,B均为括号序列 定义严格括号序列为形如(A)的括号序列,其中A为括号序列. 给出一个长度为 ...
- HDFS文件操作命令手册
HDFS文件操作的基本格式是: bin/hadoop dfs -cmd <args> 1. cat $ hadoop dfs -cat URI [URI …] #将参数所指示的文件的内容输 ...
- Chrome查看html样式基本操作-div
1. div 标签(白板,块级标签),想学会前端,只需要学会div+css就可以了. span 标签 (白板,行内标签) 2. Chrome审查元素的使用.右击浏览器--检查---可以看标签是块级还是 ...
- Select-poll-epoll-简介
1. Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno()方法的文件句柄)何时变成readable 和 ...