2

我正在尝试使用sails-hook-deep-orm多次填充sails js 。我想过滤省份ID。我正在使用最新版本的 Sails 和 Node。我使用 MySQL 作为数据库。

这是我的模型:

// Province.js
attributes: {
    name: {
      type: 'string',
      required: true
    },
    description: {
      type: 'string',
      required: false
    },
    cities: {
      collection: 'city',
      via: 'province'
    }
}

// City.js
attributes: {
    name: {
      type: 'string',
      required: true
    },
    description: {
      type: 'string',
      required: false
    },
    province: {
      model: 'province'
    },
    communities: {
      collection: 'community',
      via: 'city'
    }
}

// Community.js
attributes: {
    name: {
      type: 'string',
      required: true
    },
    description: {
      type: 'string',
      required: false
    },
    cities: {
      collection: 'city',
      via: 'province'
    }
}

我尝试过:

Community.find()
  .populate('city.province', {'city.province.id' : 1});

Community.find()
  .populate('city.province', { where: { 'city.province.id': 1 } });

代码仍然没有过滤。我希望这个案子能得到解决。谢谢 :)

4

1 回答 1

2

当您填充对象的关联时,名称需要是父对象中关联的名称,而不是您所引用的模型的名称。

在您的情况下,社区有一个名为“城市”的协会。

下一步是过滤城市列表,这是 where 语句作为填充的第二个参数。

Community.find()
 .populate('cities', { 
    where: { 
      province: 1 
    }
  }
)
于 2020-04-04T16:36:47.313 回答