嵌入式持久性数据库 —— Nedb

简述

  1. 是什么?数据库。

  2. 特点:

    适用于 Node.js,nw.js,Electron 和浏览器的嵌入式持久性数据库或内存数据库,JavaScript,无二进制依赖性。API 是 MongoDB 的子集,并且速度非常快。可以充当内存数据库,也可以用来实现本地存储

  1. 能干什么 ? 消除了与客户机服务器配置相关的开销,在运行时,也只需要较少的内存开销

  2. 缺点:不宜用于处理大量数据

  3. 性能:NeDB 吞吐量 (带索引)

    Insert: 5950 ops

    Find: 25440 ops

    Update: 4490 ops

    Remove: 6620 ops

安装

https://github.com/louischatriot/nedb ❤10.7K

1
2
3
4
5
npm install nedb --save # Put latest version in your package.json

npm test # You'll need the dev dependencies to launch tests

bower install nedb # For the browser versions, which will be in browser-version/out

开始

1
2
3
4
5
6
const Datastore = require('nedb');

const page = new Datastore({
filename: './[dbname].db',
autoload: true,
});

简单教程

查找:

1
2
3
4
5
db.find({}, function (err, docs) {}).sort().limit();

db.findOne({ \_id: [id] }, function (err, docs) {});

db.count({id: [id]}, function (err, count) {});

插入:

1
db.insert(doc, function (err, newDoc) {})

更新:

1
db.update({ \_id: [id] }, { $set: { replaceObj } }, { multi: true }, function (err, newDoc) {})

删除:

1
2
3
db.remove({ \_id: [id] }, {}, function (err, numRemoved) {
// numRemoved = 1
});

执行 update 和 remove 操作时,nedb 都会在文件末尾新增加一行相应数据,确实产生了重复的数据
再去查询这个数据库时数据是正常的,没有重复,当我再次重启时,db 数据多余的数据消失。(神奇~~~~ )

注意

  1. NeDB 支持索引。索引可以提高查询速度以及保证字段的唯一性。索引可以用在任何字段,包括嵌套很深的字段,能用来加速基本查询以及使用 $in, $lt, $lte, $gt 和 $gte 运算符的查询

  2. 数据库会自动被压缩,可手动

  3. 区分大小写

其他数据库

借鉴

http://www.alloyteam.com/2016/03/node-embedded-database-nedb/

Gitpod在线IDE 大数据渲染解决方案一 — react-virtualized

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×