0

我有两个模型,比如说AB。这是一个 1:n 关系,其中一个A拥有一个B,而B可以拥有我的多个A

现在,如果可能的话,B不必知道它所引用的所有A,所以我只在A方面进行关联。

现在我想搜索所有拥有B具有特定条件的A 。我基本上试过这个:

A.find()
  .populate('B', {
    where: {
      someAttr: 1
    }
  })

查看文档,我发现这与那里的示例非常相似

现在我收到以下错误:

B由于用法不明确,无法填充。这是一个单数(“模型”)关联,这意味着它永远不会引用多个关联记录。因此,此关联不支持传入子标准(即作为 的第二个参数.populate()),因为它通常没有任何意义。但这就是问题所在——看起来提供了某种子标准(或其他东西

我可以以某种方式使这个查询工作而不给B一个参考A吗?我觉得这是模型不必要的臃肿。

我现在正在使用 Sails 1.0.1。

4

1 回答 1

1

查看有关第二个参数的文档subcriteriapopulate

当填充位于同一数据库中的两个模型之间的集合关联时,可以将 Waterline 标准指定为要填充的第二个参数。这将用于过滤、排序和限制与每个主记录关联的关联记录(例如零食)的数组。

一种方法是检索所有记录然后过滤它们,或者直接使用本机查询。

于 2018-04-25T16:35:33.240 回答