是否有可能一次search多个mongoose模型?

我有四个mongoose模型, SoleTraderPartnershipCompanyTrust 。 它们不同,我不能将它们全部合并到一个模式中,但也足够相似,以至于我经常需要一次查询或更改所有4种types,而且很less关心它们的types。

有没有办法做到这一点 – 可能通过将所有四种types放在一个集合中 – 每次不需要进行四次数据库调用?

既然你正在使用mongoose-schema-extend ,看起来你可以创build一个简单的“基础”模式,并扩展你的其他模式。 如果您想search所有这些,请使用基本模型。

例如:

 // base schema var PersonSchema = new Schema({ name : String }, { collection : 'users', // everything will get saved in the same collection discriminatorKey : '_type' }); // two schema's that extend off it var EmployeeSchema = PersonSchema.extend({ department : String }); var EmployerSchema = PersonSchema.extend({}); // materialize all three into models var Person = mongoose.model('Person', PersonSchema); var Employee = mongoose.model('Employee', EmployeeSchema); var Employer = mongoose.model('Employer', EmployerSchema); ... // create some people new Employee({ name : 'Homer Simpson', department : 'Safety' }).save(...); new Employer({ name : 'Charles Montgomery Burns', }).save(...); ... // search across employers and employees Person.find({ ... }, function(err, people) { ... }); 

但是,我不得不说, find()根据鉴别器键返回正确的模型实例的广告行为不适用于我。