📜  db: vertex.nedb() (1)

📅  最后修改于: 2023-12-03 15:00:21.710000             🧑  作者: Mango

Nedb 介绍

Nedb 是一个使用 JavaScript 编写的嵌入式数据库,它模仿了 MongoDB 的API,但不需要运行 MongoDB。

Nedb 支持 Node.js 和浏览器环境,可以使用多种方式存储数据,例如内存、磁盘文件和浏览器本地存储等,使用方便灵活。

安装

使用 npm 安装 Nedb:

npm install nedb --save
使用

首先,需要先导入 Nedb 模块:

const Nedb = require('nedb');

然后,创建一个数据库实例:

const database = new Nedb({
    filename: 'path/to/database.db', // 数据库存储位置
    autoload: true // 自动加载数据库
});

创建一个表并插入数据:

const users = new Nedb();
users.insert({ name: 'John', age: 25 });
users.insert({ name: 'Sarah', age: 30 });

查询数据:

users.findOne({ name: 'John' }, function(err, user) {
    console.log(user); // 输出 { name: 'John', age: 25 }
});

更新数据:

users.update({ name: 'John' }, { $set: { age: 26 } }, {}, function(err, numReplaced) {
    console.log(numReplaced); // 输出 1
});

删除数据:

users.remove({ name: 'Sarah' }, {}, function(err, numRemoved) {
    console.log(numRemoved); // 输出 1
});

除了以上基本使用方法,Nedb 还支持更多复杂查询、索引、排序、分页等功能。

简单封装

为了方便使用,可以将 Nedb 进行简单封装:

class Database {
    constructor(filename) {
        this.db = new Nedb({ filename, autoload: true });
    }

    insert(data, callback) {
        this.db.insert(data, callback);
    }

    find(query, callback) {
        this.db.find(query, callback);
    }

    update(query, data, options, callback) {
        this.db.update(query, data, options, callback);
    }

    remove(query, options, callback) {
        this.db.remove(query, options, callback);
    }
}

const users = new Database('path/to/users.db');
users.insert({ name: 'John', age: 25 });
users.find({ age: { $gte: 30 } }, function(err, users) {
    console.log(users);
});

以上代码实现了对 Nedb 的简单封装,使得数据库操作更加便捷。

总结

Nedb 是一个轻量级、易用的嵌入式数据库,它与 MongoDB 相似,但不依赖于 MongoDB。在开发小型应用、原型开发等场景下,Nedb 是一个不错的选择。