如何在不重复代码的情况下在实时数据库和生产数据库之间切换?

这是我的情况。 我有一个广泛的基于REST的API,使用Mongoose连接到MongoDB数据库。 这个API被写成一个标准的“MEAN”栈应用程序。

目前,当开发人员查询API时,他们总是连接到实时生产数据库。 我想要做的是将一个完全相同的重复数据库作为“分段”数据库,其中新的数据将首先添加,经过一段时间的审查,然后移动到实时数据库。 然后,我希望开发人员能够简单地通过修改查询来查询任何一个。

我开始用Mongoose文档研究这个问题,看起来好像模型与DB连接相关,如果我想要有多个连接,我也必须有多个模型,每个连接一个。 这将是湿码的噩梦,而不是我想要的path。

我想要做的就是不触碰任何我的代码,只需要一个切换到一个给定的查询适当的数据库。 所以我的问题是,我怎么能做到这一点? 可能吗? 文件似乎暗示它不是。

而不是试图保持连接在相同的代码库中的两个环境,你考虑设置你的应用程序的阶段版本? 它连接的数据库可以通过环境variables或其他configuration选项来设置。

然后,开发人员只需要对其中一个或另一个进行查询,一旦完成审查过程,就可以将数据从阶段数据库迁移到生产/实时数据库。