3

我正在寻找 MongoDB API 兼容的数据库引擎,它不需要完整的mongod进程来运行(一种用于节点的 SQLite)。

从多个使用类似 API 将数据持久存储在本地磁盘上的候选者最终得到两个:

问题

  • 我没有和他们一起工作过。
  • 我对MongoDB的API也很陌生,所以很难判断可比性。

要求

我需要你的帮助/建议,只选择一个满足的图书馆

  • 它足够稳定。
  • 处理磁盘上约 1Mb 或更大的 JSON 文档非常快。
  • 我希望将来能够切换到 MongoDB 作为数据后端,或者通过更改配置文件来按需切换。我不想重复代码。

DB初始化api不同

现在只有tingodb声称 API 兼容性。甚至初始化看起来也非常相似。

廷哥德

var Db = require('tingodb')().Db, assert = require('assert');

对比

mongodb

var Db = require('mongodb').Db,
    Server = require('mongodb').Server,
    assert = require('assert');

NeDB的情况下,它看起来有点不同,因为它使用数据存储抽象:

// Type 1: In-memory only datastore (no need to load the database)
var Datastore = require('nedb')
  , db = new Datastore();

问题

不知不觉初始化是不兼容的。但是 CRUD 呢?采用它有多难?

由于我不想复制的大部分代码都是 CRUD 操作,所以我需要知道它们有多相似,即我的代码对于我拥有哪个后端这一事实有多不可知论。

// If doc is a JSON  object to be stored, then

db.insert(doc); // which is a NeDB method which is compatiable

// How about *WriteResult*? does not look like it..

db.insert(doc, function (err, newDoc) {   // Callback is optional
  // newDoc is the newly inserted document, including its _id
  // newDoc has no key called notToBeSaved since its value was undefined
});

我将感谢您对这个选择的洞察力!


另见:

4

1 回答 1

3

NeDB CRUD 操作向上兼容 MongoDB,但初始化确实不是。NeDB 实现了 MongoDB 的 API 的一部分,但不是全部,实现的部分是向上兼容的。

它的速度绝对足以满足您的要求,而且我们在过去几个月里让它变得非常稳定(不再有错误报告)

于 2014-08-20T14:59:06.500 回答