簡體   English   中英

貓鼬鑒別器未定義

[英]Mongoose discriminators undefined

我有一個帶有鑒別器的模式,但是當我運行 mySchema.discriminators 時,它返回未定義,即使當我 console.log 模式時,它也有鑒別器。 這是預期的嗎? 如何獲取鑒別器列表?

我的架構

const mongoose = require('mongoose');

const Schema = mongoose.Schema;
const options = { discriminatorKey: 'kind', collection: 'properties' };

const PropertySchema = new Schema ({
    name: {
        type: String,
        required: true
    },
    description: String
}, options);

const Property = mongoose.model('Property', PropertySchema);

const Integer = Property.discriminator('Integer', new Schema({
    bounds: {
        max: { type: 'Number', default: -Infinity },
        min: { type: 'Number', default: Infinity }
    }
}, options))

module.exports = {Property: Property, Integer: Integer}

我的控制器

const PropertyModel = require('../models/property');
module.exports.index = async (req, res) => {
    // some await function 
    console.log(PropertyModel);
    console.log(PropertyModel.discriminators)
    res.render('properties/index');
}

控制台輸出

{
  Property: Model { Property },
  Integer: Model { Integer },
  Number: Model { Number },
  Money: Model { Money },
  RadioSelect: Model { RadioSelect },
  Checkbox: Model { Checkbox },
  TieredSelect: Model { TieredSelection },
  SingleSelect: Model { SingleSelect },
  MultiSelect: Model { MultiSelect },
  SingleUser: Model { SingleUser },
  MultiUser: Model { MultiUser },
  SingleGroup: Model { SingleGroup },
  MultiGroup: Model { MultiGroup },
  Date: Model { Date },
  DateTime: Model { DateTime },
  Labels: Model { Label },
  ShortText: Model { ShortText },
  LongText: Model { LongText }
}
undefined

我能夠使用Object.keys(PropertyModel)訪問鑒別器名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM