我一直在寻找简单的数据库抽象实现,然后我找到了很棒的文章http://howtonode.org/express-mongodb,虽然很老,但我仍然喜欢这个 idea .

好吧,也许这个构造,可以在数据库设置中使用某种对象文字.

/data-layer/mongodb/user-service.js
                   /post-service.js
                   /comment-service.js

/data-layer/couchdb/user-service.js
                   /post-service.js
                   /comment-service.js

当需要数据库时,我会用var UserService = require(__dirname + '/data-layer/mongodb/user-service).UserService(db);var db = "open db object"来获取它

这是正确的方法还是有更好的解决方案?

推荐答案

NPM提供了几种解决方案:

  • Node-DBI:"Node DBI是一个SQL数据库抽象层库,受到PHP Zend Framework Zend_Db API的强烈启发.它通过适配器类提供了与多个数据库引擎协作的统一函数.目前,支持的引擎有mysql、mysql libmysqlclient和sqlite3".看来开发已经暂停了.
  • Accessor:"一个数据库包装器,提供对数据库的轻松访问."目前只支持MySQL和MongoDB.
  • Activerecord:"一种用Coffeescript编写的ORM,支持多个数据库系统(SQL、NoSQL,甚至REST)以及ID生成中间件.它完全可以扩展,以添加新的数据库系统和插件."

Mongodb相关问答推荐

Mongodb如果数组中有外部键,则将排序应用到查找结果

获取文档字段名并将其作为嵌套字段添加到聚合中

mongoose正在抛出Schema的错误has';t已在next.js中注册

MongoDB 聚合 $match 阶段与条件查询

如何对 MongoDB setWindowFields 中当前文档以外的文档进行操作

仅当特定字段存在于 MongoDB 中时才更新它

MongoDB 使用 pymongo 收集 500K 文档的写入速度很差

MongoDB 将 JSON 字符串转换为数组[{obj1},{obj2}]的实际对象

Nestjs中不同语言数据的mongodb聚合代码

如何在 MongoDb 中使用杰克逊将日期字段存储为 ISODate()

在 Mongo 中存储嵌套类别的最有效方法?

为多个日期范围聚合 $group

如何对连接到 mongo 的方法进行单元测试,而不实际连接到 mongo?

MongoDB 查找精确的数组匹配,但顺序无关紧要

我如何使用 Twitter 的流 api 中的推文并将它们存储在 mongodb 中

获取 mongodb 中所有唯一标签的列表

mongoose:按字母顺序排序

如何在java中删除mongodb集合中的所有文档

试图从 mongoose 获取Collection 列表

是否可以在 Mongodb 中的两个数据库之间进行 $lookup 聚合?