猫鼬模型未写入 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.
访问
据我所知,按照我的方式建立连接和模型没有任何问题。无论如何,我希望。
我正在构建一个 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.
访问据我所知,按照我的方式建立连接和模型没有任何问题。无论如何,我希望。