【问题标题】:Sails.js: Could not populate model because of ambiguous usageSails.js:由于用法不明确,无法填充模型
【发布时间】:2018-04-25 16:26:59
【问题描述】:

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

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

现在我想根据特定条件搜索所有拥有 BA。我基本上已经尝试过了:

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

查看文档,我发现这与示例 there 非常相似。

现在我收到以下错误:

由于用法不明确,无法填充 B。这是一个 单数(“模型”)关联,这意味着它从不指代更多 比一个关联的记录。所以传入子标准(即作为 不支持 .populate()) 的第二个参数 关联,因为它通常没有任何意义。但那是 麻烦 - 它看起来像某种子标准(或其他东西) 提供!

我能否在不向 B 返回 A 的引用的情况下使这个查询工作?我觉得这是不必要的模型臃肿。

我现在正在使用 Sails 1.0.1。

【问题讨论】:

    标签: node.js sails.js sails-postgresql


    【解决方案1】:

    查看docs 关于subcriteriapopulate 的第二个参数:

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

    您可以执行此操作的一种方法是检索所有记录然后过滤它们,或直接使用本机查询。

    【讨论】:

      猜你喜欢
      • 2020-09-19
      • 2020-05-21
      • 2018-08-04
      • 2015-10-04
      • 2023-02-02
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多