查询风帆中的关联值

时间:2014-07-28 17:10:56

标签: mysql node.js sails.js

有两个表,书籍与标签有多对多的关联。 如何找到只有特定标签ID的书? 我试过了:

Book.find().populate("tag", where:{id: 1 }).exec(console.log)

但它提供了所有书籍。

2 个答案:

答案 0 :(得分:2)

如果您要查找具有特定tagid的所有图书,您可能会想要执行以下操作:

Tag
.findOne(1)
.populate('books')
.then(function(tag) {
    if (!tag) {
        res.serverError(error);
    } else {
        res.json(tag.books);
    }
});

基本上,您希望通过id(1)查找标记,然后填充该标记的books关联。

答案 1 :(得分:0)

您必须在find()中提供条件,而不是填充。

您的固定变体:

Book
    .find()
    .where({
        id: 1
    })
    .populate('tag')
    .exec(function(error, books) {
        if (error) {
            res.serverError(error);
        } else {
            res.json(books);
        }
    });