我想基于其父belongsTo
关系来过滤模型。
例如,我有一个Customer
模型和一个Books
模型。
Customer hasMany Books
和Book belongsTo Customer
,每个表可能非常庞大。
我想获取一份独特的图书清单,其中拥有Customer
的名称为John
。
到目前为止,我知道我可以从Book模型中查找类似于以下内容的查询:
Book.find({
include: {
relation: 'customer',
scope: {
where: {name: 'John'}
}
}
}, function(err, books) {
// Loop through the books here
});
或者我可以从Customer模型接近它,并手动合并图书清单(删除重复项):
Customer.find({
where: {name: 'John'}
}, function(err, customers) {
var books = customers.map(customer => customer.books);
// Remove duplicates here
});
我更喜欢第一种方法,因为它似乎会在查询方面执行复制逻辑。
但是,该方法似乎包含所有书籍,但仅适用于客户名称为 John 的书籍,它会添加customer
属性。
我接近这个错误的方式吗?