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
