从 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"
对于 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"