Я использую mongoose с cosmosdb (с mongodb api) на node.js.При работе в любой среде, кроме рабочей, я хочу использовать одну и ту же базу данных для многих приложений и добавить префикс к имени коллекции.
Я могу сделать это следующим образом:
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 в одном месте (например, когда я создаю соединение), чтобы добавить префикс по умолчанию, чтобы мои модели были чище?
Я мог бы написать некоторую функцию для создания модели и использовать ее в моделях вместо mongoose.model(modelName, schema)
, но если я могу, я хотел бы сделать что-то, что мне вообще не нужно менять файлы модели.