Я следую инструкциям в этой ссылке https://anthonychu.ca/post/cosmos-db-mongoose-discriminators/, чтобы хранить несколько типов документов в одной коллекции в базе данных Azure Cosmos DB (Mongo API).
Я использую mongoose 5.2.10, nodejs 8.12
У меня есть модели с полями, установленными на "unique: true".Например,
Вот моя базовая схема:
const mongoose = require('mongoose')
const baseOptions = {
discriminatorKey: '__type',
collection: 'data'
}
module.exports = mongoose.model('Base', new mongoose.Schema({}, baseOptions))
А вот одна из актуальных моделей:
const mongoose = require('mongoose')
const uniqueValidator = require('mongoose-unique-validator')
const Base = require('./_Base')
const roles = require('../lib/auth').roles
const UserSchema = new mongoose.Schema({
displayName: { type : String, default: '' },
email: { type : String, unique : true, required: true },
role: { type : String , default: roles.Users },
tenant: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Tenant'
}
})
UserSchema.plugin(uniqueValidator)
module.exports = Base.discriminator('User', UserSchema)
Все мои данные хранятся в коллекции с именем'data', как указано в моей базовой модели, но каким-то образом в базе данных Cosmos создается другая коллекция с именем "undefine", которая, по-видимому, связана с индексами моей коллекции данных:
Вопрос: Как предотвратить создание этой «неопределенной» коллекции и поместить любые относящиеся к индексу данные в ту же коллекцию, что и мои данные?
Спасибо