[英]mongoose discriminator find query
我正在尝试使用“ mongoose-schema-extend”中所述的测试用例
一切都按照那里的解释进行。
但是,我希望它使我能够对继承的类型进行搜索查询。 因此,如果我们考虑上面链接中显示的示例:
var VehicleSchema = mongoose.Schema({
make : String,
}, { collection : 'vehicles', discriminatorKey : '_type' });
var CarSchema = VehicleSchema.extend({
year : Number
});
var BusSchema = VehicleSchema.extend({
route : Number
})
var Vehicle = mongoose.model('vehicle', VehicleSchema),
Car = mongoose.model('car', CarSchema),
Bus = mongoose.model('bus', BusSchema);
var accord = new Car({
make : 'Honda',
year : 1999
});
var muni = new Bus({
make : 'Neoplan',
route : 33
});
我希望Car.find({})
仅返回具有_type : Car
的文档_type : Car
。 相反,我得到了所有vehicles
。
除了进行Car.find{"_type":"Car"})
以外,是否有其他方法只能获得cars
?
您可能必须向软件包所有者提出功能请求,或者自己对项目提出请求请求。 但是,一种解决方法是实现自定义find方法:
CarSchema.statics._find = function(query, next) {
query._type = 'Car';
this.find(query, next);
}
Car._find({}, function(err, cars) {
...
};
_find现在应该只返回Car对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.