【发布时间】:2016-12-10 15:10:17
【问题描述】:
在 Sails.js(使用 Waterline ORM)中,我如何查询仅在条件适合关联时才返回记录的模型。以下是代码:
Order.find()
.populate('books', {title: {startsWith: 'Star Trek'}})
.exec(function (err, foundOrders) {
....
});
型号如下:
订单:
module.exports = {
attributes: {
...
books: {
collection: book,
via: order
through: orderbook
}
}
书:
module.exports = {
attributes: {
....
order: {
collection: order,
via: book
through: orderbook
}
}
订单簿:
module.exports = {
attributes: {
order: {
model: order
},
book: {
model: book
}
}
}
我发现结果记录集是所有订单。只是每个订单的填充结果仅包含标题以“星际迷航”开头的书籍。
这不是我想要的。我想退回只有标题以“星际迷航”开头的书籍的订单。
请任何人都可以建议如何正确处理我的查询语句?
【问题讨论】:
-
为了进一步澄清我的问题,上面的代码将获取所有订单记录。那些没有书籍标题以“星际迷航”开头的订单将有一个空的书籍数组。我想要得到的是代码应该返回一系列书籍的顺序,这些书籍的标题仅以“星际迷航”开头。应排除具有空书阵列的订单。我怎么得到它?现在我需要在得到结果后应用一个数组过滤器。有没有更好的办法?
标签: sails.js