我有两种模式让我们说 A 和 B 。它是1:n关系,其中一个 A 拥有一个 B ,而 B 可以拥有我的多个 A 秒。
现在,如果可能的话, B 不应该知道它所引用的所有 A ,所以我是只关联 A 方。
现在,我想搜索具有特定条件的 B 的所有 A 。我基本上试过这个:
A.find()
.populate('B', {
where: {
someAttr: 1
}
})
查看文档,我发现这与示例there非常相似。
现在我收到以下错误:
由于使用模糊,无法填充
B
。这是一个 单数("模型")关联,这意味着它永远不会引用更多 比一个相关记录。所以通过次级标准(即作为 这不支持.populate()
的第二个参数 协会,因为它通常没有任何意义。但那是 麻烦 - 它看起来像某种子标准(或其他东西) 提供了 !
我可以以某种方式使这个查询工作而不给 B 提供 A 的参考吗?我觉得这对模特来说是不必要的膨胀。
我现在正在使用Sails 1.0.1。
答案 0 :(得分:1)
查看docs关于第二个参数subcriteria
到populate
:
当填充位于同一数据库中的两个模型之间的集合关联时,可以将Waterline标准指定为要填充的第二个参数。这将用于过滤,排序和限制与 EACH 主记录相关联的相关记录(例如零食)数组。
您可以这样做的一种方法是检索所有记录,然后过滤它们,或直接使用本机查询。