为猫鼬的集合名称设置默认前缀

时间:2018-11-27 22:23:06

标签: node.js mongoose mongoose-schema

我在node.js上将猫鼬与cosmosdb(带有mongodb api)一起使用。 在生产环境以外的任何环境中运行时,我想对许多应用程序使用相同的数据库,并在集合名称上添加前缀。

我能够做到这一点:

const DB_PREFIX = config.get('APP_NAME')
const ENV = config.get('NODE_ENV')

const UserSchema = new Schema({ 
    name: { type: String, required: true }
})

const collection = ENV === 'production' ? 'users' : `${DB_PREFIX}-users`
module.exports = mongoose.models.Users || mongoose.model('Users', UserSchema, collection)

但不是在每个模型定义上都这样做,而是可以在一个地方(例如,当我创建连接时)在猫鼬对象上创建或覆盖某些东西以添加默认前缀,因此我的模型会更干净?

我可以编写一些函数来创建模型,并在模型中使用它而不是mongoose.model(modelName, schema),但如果可以的话,我想做一些根本不需要更改模型文件的事情。

0 个答案:

没有答案