Коллекция индексов Azure CosmosDB с именем «undefined» - PullRequest
0 голосов
/ 26 сентября 2018

Я следую инструкциям в этой ссылке 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", которая, по-видимому, связана с индексами моей коллекции данных:

enter image description here

Вопрос: Как предотвратить создание этой «неопределенной» коллекции и поместить любые относящиеся к индексу данные в ту же коллекцию, что и мои данные?

Спасибо

...