NeDB的CRUD API是否与MongoDB兼容?

时间:2014-07-23 14:24:28

标签: node.js mongodb nedb tingodb

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

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

问题

  • 我和他们都没有合作过。
  • 我对MongoDB的API也很新,所以我很难判断可比性。

要求

我需要您的帮助/建议,只选择一个满足

的库
  • 足够稳定。
  • 在磁盘上或更大的磁盘上处理〜1Mb JSON文档的速度很快。
  • 我希望以后能够通过更改配置文件切换到MongoDB作为数据后端。我不想重复代码。

数据库初始化api不同

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

tingodb

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

VS

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
});

我将非常感谢您对此选择的见解!


另见:

1 个答案:

答案 0 :(得分:3)

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

这绝对足以满足您的要求,并且我们在过去几个月内使其非常稳定(不再有错误报告)