gpt4 book ai didi

node.js - 是否可以一次搜索多个 Mongoose 模型?

转载 作者:可可西里 更新时间:2023-11-01 09:36:53 27 4
gpt4 key购买 nike

我有四个 Mongoose 模型,SoleTraderPartnershipCompanyTrust。它们非常不同,我无法将它们全部合并到一个模式中,但又非常相似,以至于我经常需要同时查询或更改所有 4 种类型,而很少关心它们属于哪种类型。

有没有办法做到这一点——可能是将所有四种类型放在一个集合中——而不是每次调用四个数据库?

最佳答案

由于您使用的是 mongoose-schema-extend ,看起来您可以创建一个简单的“基本”模式并从中扩展您的其他模式。如果您想搜索所有这些模型,请使用基本模型。

例如:

// 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) {
...
});

但是,我不得不说advertised behaviour根据鉴别器键返回正确模型实例的 find() 对我不起作用。

关于node.js - 是否可以一次搜索多个 Mongoose 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19111800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com