猫鼬模型未写入 mongoose.models 对象。问题?

Mongoose models not written to mongoose.models object. Problem?

我正在构建一个 Nodejs/Mongoose 后端,我有一个 MongoDB 具有两个数据库的 Atlas 集群:A 和 B。

我已经使用 createConnection() 连接到数据库 A 和 B。像这样:

const connectDB = (url) => {
  return mongoose
  .createConnection(url, {
    useNewUrlParser: true,
    useCreateIndex: true,
    useFindAndModify: false,
    useUnifiedTopology: true
  })
}

const A = connectDB( *theURI* )
const B = connectDB( *theURI* )

我为数据库设置的模型创建如下(例如数据库 A):

const fruit = A.model('fruit', fruitSchema)
const animal = A.model('animal', animalSchema)

module.exports = {
  fruit,
  animal
}

现在我尝试访问 mongoose.models 对象,以查看我的模型的概览(因为我需要它)。我的模型没有出现。当我用 mongoose.model 而不是 A.model 创建模型时,它们确实出现了。

然而,我看不出这有什么意义。我是否设置了错误的模型(尽管它确实起作用)?如果我不使用 mongoose.model,我的代码一定会 运行 出问题吗?

谢谢。

我想我现在明白了。我不会删除 post,而是解释帮助我理解的内容。

显然,Mongoose 区分了'default' 连接和'non-default' 连接。您只能创建一个默认连接(使用 mongoose.connect),但可以创建多个非默认类型的连接(使用 .createConnection)。

模型被分配给一个连接——无论是否默认。我的模型被分配到 A 和 B,可以通过 A.models 或 B.models.

访问

据我所知,按照我的方式建立连接和模型没有任何问题。无论如何,我希望。