我正在使用Sails.js版本0.10.0-rc4
。所有模型都使用sails-mysql。
我试图查询一个具有"一对多"与另一个模型的关联(查询发生在"很多"方面)。
它看起来像这样:
Post.find()
.where({ category: category_id })
.populate("category")
.exec( ... )
这给了我一个空数组,但当我遗漏.populate("category")
时,我得到了正确的结果集。
我知道我可以离开.populate("category")
,然后分别获取每个相关的类别对象,但我想知道是否有更好的解决方案来解决这个问题。
答案 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