基于Node.js的嵌入式数据库Nedb的基本使用

2021-08-23 13:01:30 0 2860

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

发表留言