点击蓝字关注未来
NeDB 是使用 Nodejs 实现的 NoSQL 嵌入式数据库,可以充当内存数据库,也可以用来实现本地存储,甚至可以在浏览器中使用。

NeDB 嵌入到应用程序进程中,消除了与客户机服务器配置相关的开销,在运行时,也只需要较少的内存开销,使用精简代码编写,速度更快。其 API 是 MongoDB 的一个子集,可以通过这些接口轻松管理应用程序数据,而不依靠原始的文档文件。

NeDB 查询方式比较灵活,支持使用正则、比较运算符、逻辑运算符、索引以及 JSON 深度查询等。具有简单、轻量、速度快等特点,由于嵌入式数据库存储总数据量最好要控制在 1GB 以内,所以适合在不需要大量数据处理的应用系统中使用(比如使用 nw.js 等实现的桌面应用程序、并发量不大的系统等)。
如何
使用
”在node安装Nedb
npm install nedb --save
Nedb安装在全局环境中
npm install -g nedb
浏览器中安装
浏览器版本及其缩小版位于 browser-version/out 目录中,只需要在 HTML 文件中使用 nedb.js 或 nedb.min.js ,Nedb 即可立即注册全局对象,其 API 与服务器版本相同。
如果指定 filename ,则数据库将是持久的,并根据浏览器自动选择可用的最佳存储方法( IndexedDB 、 WebSQL 或 localStorage )。在大多数情况下,这意味着可以存储大量数据,通常为数百 MB。

NeDB 兼容所有主流浏览器:Chrome、Safari、Firefox、IE9+,可以从源代码构建浏览器版本,构建脚本是 browser-version/build.js 。
// 加载模块const nedb = require('nedb');// 实例化连接对象(不带参数默认为内存数据库)const db = new nedb({filename: '/data/save.db',autoload: true});
性能
表现
”在普通机器上,对于1万条记录,NeDB吞吐量(带索引):
Insert: 5950 ops
Find: 25440 ops
Update: 4490 ops
Remove: 6620 ops
功能
介绍
”插入单项
db.insert({name: 'tom'}, (err, ret) => {});
插入多项
db.insert([{ name: 'tom' },{ name: 'jerry' }], (err, ret) => {});
查询单项
db.findOne({name: 'tom'}, (err, ret) => {});
查询多项
db.find({name: {$in: ['tom', 'jerry']}}).sort({_id: -1}).exec((err, ret) => {});
更新单项
db.update({_id: '1'}, {$set: {name: 'kitty'}}, (err, ret) => {});
更新多项
db.update({}, {$set: {name: 'kitty'}}, {multi: true}, (err, ret) => {});
删除单项
db.remove({_id: '1'}, (err, ret) => {})
删除多项
db.remove({name: 'kitty'}, {multi: true}, (err, ret) => {});
项目
开源
”遗憾的是,作者于 2021 年 7 月明确表示项目不再进行维护,可能有错误和安全问题,也许接下来会有其他组织或机构接手相关工作。

GitHub:
https://github.com/louischatriot/nedb
虽然 NeDB 暂停了维护,但其小巧完善便捷的开发方式可以帮助次要项目节省不少成本开支。

鸿蒙开天斧




