Mongoose 单个应用程序的多个数据库

Posted

技术标签:

【中文标题】Mongoose 单个应用程序的多个数据库【英文标题】:Mongoose Multiple Database For A single Application 【发布时间】:2019-05-23 05:06:21 【问题描述】:

如何在 mongoose 中访问其他数据库的 schema? 例如,db1 有用户列表,db2 有另一个列表。我的应用程序具有仅为db1 定义的所有模型。但现在我想在我的应用程序中访问db2 的列表。我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

您可以在Connection 类型上使用useDb 函数。它返回另一个连接。如果您共享相同的 Schema,那么您的代码可能如下所示:

var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test');

var schema = new Schema(
    // ...    
);

var db = mongoose.connection;
var Model1 = db.model('schema', schema, 'colName');

var db2 = db.useDb('test2');
var Model2 = db2.model('schema2', schema, 'colName');

【讨论】:

test2 是模式还是数据库?对于数据库,我应该传递连接 URI 对吗? 假设你有相同的 URI 那么test2 只是一个数据库名称(在同一台服务器上)

以上是关于Mongoose 单个应用程序的多个数据库的主要内容,如果未能解决你的问题,请参考以下文章

单个node.js项目中的Mongoose和多个数据库

Mongoose - 使用单个集合的多个模式

如何使用 Mongoose 为单个帖子保存多个类别

从 MongoDB 和 Mongoose 中的多个文档创建单个文档

Node.js 和 Mongoose 正则表达式查询多个字段

如何在 Mongoose/Node.js 中同时保存多个文档?