在loopback中基于belongsTo关系进行过滤

时间:2016-05-10 01:23:16

标签: javascript loopbackjs

我想基于其父belongsTo关系来过滤模型。

例如,我有一个Customer模型和一个Books模型。

Customer hasMany BooksBook 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属性。

我接近这个错误的方式吗?

0 个答案:

没有答案