Sails.js查询关联的值

时间:2014-04-08 14:50:50

标签: javascript mysql node.js sails.js

我正在使用Sails.js版本0.10.0-rc4。所有模型都使用sails-mysql。

我试图查询一个具有"一对多"与另一个模型的关联(查询发生在"很多"方面)。

它看起来像这样:

Post.find()
    .where({ category: category_id })
    .populate("category")
    .exec( ... )

这给了我一个空数组,但当我遗漏.populate("category")时,我得到了正确的结果集。

我知道我可以离开.populate("category"),然后分别获取每个相关的类别对象,但我想知道是否有更好的解决方案来解决这个问题。

2 个答案:

答案 0 :(得分:12)

它不是100%清楚你在这里尝试做什么。如果您的目标是过滤Post上填充的类别,则可以执行以下操作:

Post.find()
    .populate("category", {where: { category: category_id }})
    .exec( ... )

如果您只想检索某个类别的Post,请执行以下操作:

Category.findOne(category_id)
        .populate("posts")
        .exec(function(e, c) {console.log(c.posts);})

答案 1 :(得分:1)

原帖很快

以下为我的工作(风帆0.12)与人口:

Post.find({category: category_id})
    .populate("category")
    .exec( ... )

但我仍然感到困惑的是,在子查询中搜索除了id之外的任何其他属性。

Edit2:似乎还不支持深度查询:https://github.com/balderdashy/waterline/issues/266