gpt4 book ai didi

node.js - NeDB 的 CRUD API 是否与 MongoDB 兼容?

转载 作者:可可西里 更新时间:2023-11-01 10:04:12 27 4
gpt4 key购买 nike

我正在寻找不需要完整的 mongod 进程即可运行的 MongoDB API 兼容数据库引擎(类似于 Node 的 SQLite)。

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

问题

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

要求

我需要你的帮助/建议来选择一个满足条件的库

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

DB初始化api不同

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

tingodb

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

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


另见:

最佳答案

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

它绝对足够快,可以满足您的要求,并且在过去几个月里我们已经使它非常稳定(不再有错误报告)

关于node.js - NeDB 的 CRUD API 是否与 MongoDB 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24913133/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com