我正在寻找 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
});
我将感谢您对这个选择的洞察力!
另见:
有人用过通古斯吗?成熟了吗?