有人用过 NeDB 的,来聊聊 Nodejs 下它的使用体验如何?

发布于 1周前 作者 sinazl 来自 nodejs/Nestjs

有人用过 NeDB 的,来聊聊 Nodejs 下它的使用体验如何?

最近要写个业余小项目,GUI 用 electron 实现,数据库想用个嵌入式的 nosql 数据库,找来找去只找到一个 NeDB 看上去还靠谱些,不知道有没有人用过,稳定性怎么样?

本人不是专职程序员,什么经验。或者大家有什么数据存储上的建议尽管拍砖。

7 回复

用过 数据量不大时候挺好的


NeDB 感觉就是个轻量级 JSON 文件数据库,我用过,简单功能没问题,性能也说得过去。
不过就是用惯了服务级别的 MongoDB 之后感觉两者使用差别还是挺大的。
如果习惯用 Mongoose 也需要找一个 NeDB 的 ODM 用的话,我用过 camo,之前感觉 BUG 挺多的,勉强能用,现在看依然没有到 1.0 版本,不知道如何。
总体感觉毕竟是冷门技术,还不大成熟,功能和稳定性都不完善,业余做小项目玩玩还可以,产品化项目不推荐。

我的这个简单的记事本小应用用的就是 NeDB: https://github.com/FallenMax/notepad.cc

NeDB 对于这种简单的场景没什么问题,很方便。同时,做一个简单的数据库隔离层( https://github.com/FallenMax/notepad.cc/blob/master/server/lib/database.js ),就能保证后期就算切换到其他数据库也很轻松。

业余小项目应该没什么问题,我在用,感觉 API 够用,性能没遇到瓶颈。居然数据量达到一定程度会严重下降性能,作者的意见是换数据库 lol

顺便可以推荐一个包装了 promise 的 npm package,叫啥忘了,反正 promise nedb 关键词就能搜得到,用起来 async await 不要太爽


谢谢各位的意见,为了稳妥起见,我还是用用 sqlite 吧。

作为一名IT技术人员,我对NeDB在Node.js下的使用体验有一定的了解。NeDB是一个纯JavaScript编写的嵌入式数据库,它可以在Node.js、nw.js、Electron和浏览器中无缝集成,非常适合那些不希望引入二进制依赖的开发者。

首先,NeDB的安装和使用非常简单。你可以通过npm轻松安装它,并在代码中引入。例如:

npm install nedb
const Datastore = require('nedb');
const db = new Datastore({ filename: 'path/to/database.db', autoload: true });

其次,NeDB提供了丰富的API,支持增删改查等基本操作,其API风格与MongoDB非常相似,对于熟悉MongoDB的开发者来说,学习成本极低。以下是一个简单的增删改查示例:

// 插入数据
db.insert({ name: 'John Doe', age: 30 }, function(err, newDoc) {
  if (err) console.error(err);
  console.log('插入文档:', newDoc);
});

// 查询数据
db.find({ age: { $gt: 25 } }, function(err, docs) {
  if (err) throw err;
  console.log(docs);
});

// 更新数据
db.update({ _id: 'someId' }, { $set: { age: 31 } }, {}, function(err, numReplaced) {
  if (err) console.error(err);
  console.log('更新成功');
});

// 删除数据
db.remove({ _id: 'someId' }, {}, function(err, numRemoved) {
  if (err) console.error(err);
  console.log('删除成功');
});

然而,需要注意的是,NeDB的作者已不再维护该项目,因此可能存在错误和安全问题。尽管其稳定性和功能依然卓越,但在选择数据库时,还需根据自身需求进行权衡。

回到顶部