NeDB 是使用 Node.js 实现的一个 NoSQL 嵌入式数据库操作模块, 可以充当内存数据库,也可以用来实现本地存储,甚至可以在浏览器中使用。 查询方式比较灵活,支持使用正则、比较运算符、逻辑运算符、索引以及 JSON 深度查询等,适用于不需要大量数据处理的应用系统。
一、安装
使用 npm 安装 NeDB ,执行如下命令:
npm install nedb --save
二、创建NeDB数据库
1、引入依赖
首先,使用 require 引入 nedb :
var NeDB = require('nedb')
2、数据库初始化
接下来,我们需要初始化一个 NeDB 对象:
var db = new NeDB({
filename: './user.db',
autoload: true,
})
初始化数据库时,我们传入两个参数:filename 和 autoload 。
第 2 行,filename 用于指定数据存储的文件位置,在本示例中,filename 指定为同个目录下的 user.db; 第 3 行,设置 autoload 为 true ,用于自动加载数据库。
至此,我们得到了一个数据库对象 db 。 接下来,对数据库进行常规操作:插入、查询、更新、删除。
3、增删改查操作、及配置详情看官网
https://www.w3cschool.cn/nedbintro/
看这个,写的还是蛮清楚的
三、遇到问题
1、数据库nedb在update更新数据时,为什么总是会重新插入一条数据?
我在使用nedb update某一行数据时,始终会在文档末尾插入一行新数据。我把nedb api用法看来看去,也没找到自己代码哪里有问题。后来仔细阅读文档其他部分。才发现了nedb 对【持久化】的解释。
NeDB的持久性使用附加文本的方法,这意味着出于性能原因,所有更新和删除实际上都会导致在数据文件末尾添加行。每次在应用程序中加载每个数据库时,数据库都会自动压缩(即以每个文档一行的格式放回)。
什么意思呢?
就是每次你执行update 和 remove操作时,nedb都会在文件末尾新增加一行相应数据,一开始我想当然的认为这样总是会产生至少2条以上的重复数据。
事实不是:在你再去查询某条数据时,nedb会自动压缩数据,保证你查询出来的数据没有重复的。
我马上代码试了下,果然,之前更新数据时,在文档末尾新增的数据,都不见了,相关属性值都被合并到之前已有的对于某条记录里去了。
来源:oschina
链接:https://my.oschina.net/u/4364921/blog/3283203