简述
是什么?数据库。
特点:
适用于 Node.js,nw.js,Electron 和浏览器的嵌入式持久性数据库或内存数据库,JavaScript,无二进制依赖性。API 是 MongoDB 的子集,并且速度非常快。可以充当内存数据库,也可以用来实现本地存储
能干什么 ? 消除了与客户机服务器配置相关的开销,在运行时,也只需要较少的内存开销
缺点:不宜用于处理大量数据
性能:NeDB 吞吐量 (带索引)
Insert: 5950 ops
Find: 25440 ops
Update: 4490 ops
Remove: 6620 ops
安装
1 | npm install nedb --save # Put latest version in your package.json |
开始
1 | const Datastore = require('nedb'); |
简单教程
查找:
1 | db.find({}, function (err, docs) {}).sort().limit(); |
插入:
1 | db.insert(doc, function (err, newDoc) {}) |
更新:
1 | db.update({ \_id: [id] }, { $set: { replaceObj } }, { multi: true }, function (err, newDoc) {}) |
删除:
1 | db.remove({ \_id: [id] }, {}, function (err, numRemoved) { |
坑
执行 update 和 remove 操作时,nedb 都会在文件末尾新增加一行相应数据,确实产生了重复的数据
再去查询这个数据库时数据是正常的,没有重复,当我再次重启时,db 数据多余的数据消失。(神奇~~~~ )
注意
NeDB 支持索引。索引可以提高查询速度以及保证字段的唯一性。索引可以用在任何字段,包括嵌套很深的字段,能用来加速基本查询以及使用 $in, $lt, $lte, $gt 和 $gte 运算符的查询
数据库会自动被压缩,可手动
区分大小写
其他数据库
lowdb https://github.com/typicode/lowdb ❤11.7K 支持 node.js 和浏览器端的使用, 和 Lodash API 一致
lokijs https://github.com/techfort/LokiJS ❤5K 支持 js 和浏览器端的使用
借鉴
http://www.alloyteam.com/2016/03/node-embedded-database-nedb/