从 MongooseModel#discriminator 函数创建模型时如何设置鉴别器键的值?

How to set the value of the discriminator key when creating a Model from the MongooseModel#discriminator function?

对于 Mongoose,我了解到我可以使用鉴别器功能,使用鉴别器键让不同的模式存在于同一个集合中。

const options = { discriminatorKey: 'kind' };
const Event = mongoose.model('Event, new Schema({
 name: { type: String }
}, options);

const ClickEvent = Event.discriminator('ClickEvent', new Schema({
 url: { type: String }
}, options);

// on another file
const ClickEvent = mongoose.model('ClickEvent');
const clickEvent = new ClickEvent({
 name: 'sir',
 url: 'http://somewhere.com/hello'
});
console.log(clickEvent); // { name: 'sir', url: 'http://somewhere.com/hello', kind: 'ClickEvent' }
// look carefully kind is set to ClickEvent

我想要以某种方式将 kind 设置为 click。 我怎么能这样做?我希望是这样的:

const ClickEvent = Event.discriminator('ClickEvent', new Schema({
     url: { type: String }
    }, { ...options, discriminatorValue: 'click' });

对于 Mongoose 5.2+,您可以按照 API Doc

中指定的方式将值作为第三个参数传递
const ClickEvent = Event.discriminator('ClickEvent', new Schema({
  url: { type: String }
}), "click")

并且 kind 将设置为 "click"