簡體   English   中英

貓鼬鑒別器查找查詢

[英]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.

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