NeDB是使用Nodejs实现的一个NoSQL嵌入式数据库操作模块,可以充当内存数据库,也可以用来实现本地存储,甚至可以在浏览器中使用。查询方式比较灵活,支持使用正则、比较运算符、逻辑运算符、索引以及JSON深度查询等。
NeDB嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销,在运行时,也只需要较少的内存开销,使用精简代码编写,速度更快。其API是MongoDB的一个子集,可以通过这些接口轻松管理应用程序数据,而不依靠原始的文档文件。
具有简单、轻量、速度快等特点,由于嵌入式数据库存储总数据量最好要控制在1GB以内,所以适合在不需要大量数据处理的应用系统中使用(比如使用nw.js等实现的桌面应用程序、并发量不大的系统等)。
在node安装Nedb
npm install nedb --save
使用Nedb
// 加载模块 import Datastore from 'nedb' import path from 'path'; import { remote } from 'electron'; // 实例化连接对象(不带参数默认为内存数据库) const db = new Datastore() // 本地存储需要手动调用loadDatabase方法, 带有autoload表示数据将自动从文件中加载到内存 const deviceDb = new Datastore({ autoload: true, filename: path.join(remote.app.getPath('userData'), 'db/device.db'), }) // 插入单项 deviceDb.insert( { name: 'tom', }, (err, ret) => {} ) // 插入多项 deviceDb.insert([{ name: 'tom' }, { name: 'jerry' }], (err, ret) => {}) // 查询单项 deviceDb.findOne( { name: 'tom', }, (err, ret) => {} ) // 查询多项 deviceDb.find({ name: { $in: ['tom', 'jerry'], }, }) .sort({ _id: -1, }) .exec((err, ret) => {}) // 更新单项 deviceDb.update( { _id: '1', }, { $set: { name: 'kitty', }, }, (err, ret) => {} ) // 更新多项 deviceDb.update( {}, { $set: { name: 'kitty', }, }, { multi: true, }, (err, ret) => {} ) // 删除单项 deviceDb.remove( { _id: '1', }, (err, ret) => {} ) // 删除多项 deviceDb.remove( { name: 'kitty', }, { multi: true, }, (err, ret) => {} )
随缘而来,乘风而去,山高海阔,自有我风采!
所属分类:
Node.js