用于 Node.js 的轻量级 Javascript DB

任何人都知道用 Javascript 编写的轻量级而持久的数据库,它可以与 Node.js 一起使用。

我不想要像 Mongo 或 Couch 这样伟大解决方案的“分量”。一个简单的、在内存中的、能够以文件形式持久存储到磁盘的 JS 数据库就足够了。我只用它来存储少量数据。

要求:

  • 可以使用 node.js 服务器应用程序在进程中运行
  • 可以将整个数据库保存到磁盘并在故障后恢复
  • 不需要原子写或事务支持
  • 快速查询和排序将是很好的
  • 只需要支持较小的数据量,总共不超过1MB

到目前为止,我已经遇到过 TAFFY db,但它似乎并没有为在 Node.js 中使用而进行优化。有人看到我要找的东西了吗?

谢谢

130176 次浏览

我只知道 Mongo 和 Couch 还有一个叫 坚持不懈的。

尝试使用 nStore,它看起来像是一个非常好的、键/值轻量级的、用于节点的嵌入式 db。 请参见 https://github.com/creationix/nstore

我在 SQLite3,nStore 和 Alfred 上遇到了麻烦。

对我有效的是 节点脏:

path = "#{__dirname}/data/messages.json"
messages = db path


message = 'text': 'Lorem ipsum dolor sit...'


messages.on "load", ->
messages.set 'my-unique-key', message, ->
console.log messages.get('my-unique-key').text


messages.forEach (key, value) ->
console.log "Found key: #{key}, val: %j", value


messages.on "drain", ->
console.log "Saved to #{path}"

我编写 jaguarDB 是为了处理您提到的一些事情,因为我有时也需要一个“小”数据库用于演示或测试项目,我不想依赖 mongoDB 或其他真正的数据库。

Https://github.com/hectorcorrea/jaguardb

我有同样的要求,但无法找到一个合适的数据库。NStore 很有前途,但是 API 还不够完善,也不是很一致。

这就是为什么我制作了 NeDB,它是一个面向 Node.js 项目的无依赖嵌入式数据库。您可以将它与一个简单的 require()一起使用,它是持久的,并且它的 API 是非常著名的 MongoDB API 中最常用的子集。

Https://github.com/louischatriot/nedb

看看 http://www.tingodb.com。我相信它能达到你想要的效果。此外,它与 MongoDB API 完全兼容。这样可以降低实现风险,并且随着应用程序的增长,您可以选择切换到重型解决方案。

Https://github.com/sergeyksv/tingodb

Level UP 的目标是以 Node.js 友好的方式公开 LevelDB 的特性。

Https://github.com/rvagg/node-levelup

您还可以使用 node.js 绑定 node-UnQLite 来查看 UnQLite

Https://github.com/symisc/unqlite

NeDB 看起来就是你想要的:

用 Javascript 编写的 Node.js 的嵌入式持久数据库,没有依赖关系(当然 npm 模块除外)。您可以将其视为 Node.js 项目的 SQLite,可以将其与简单的 request 语句一起使用。这个 API 是 MongoDB 的一个子集。您可以将其用作持久存储或仅在内存中使用的数据存储。

也许你应该试试 本地数据库,它的易用性和轻量级除了与先进的选择系统类似的 javascript 条件表达式..。

Https://github.com/btwael/locallydb

Lokijs : 针对 node.js、浏览器和 Cordova 的快速内存中面向文档的数据存储。

  • 具有持久性的内存中 Javascript 数据存储
  • 具有同步和持久性的浏览器内 NoSQL 数据库
  • 一个 Redis 风格的存储,一个 npm 安装
  • 用于 Cordova 的可持续 NoSQL 数据库
  • 用于 node-webkit 的可嵌入的持久化 NoSQL 数据库

LokiJS 是理想的解决方案:

  • 移动应用-特别是基于 HTML5的(科尔多瓦,Phonegap, 等)
  • Js 为中小型应用程序嵌入了数据存储
  • 使用 Node Webkit 嵌入桌面应用程序

Https://github.com/techfort/lokijs