使用Waterline ORM查找或创建相关实体

时间:2016-08-30 03:41:27

标签: sails.js waterline

说我有两个型号:
国家:

var volume = document.querySelector('.volume');
volume.addEventListener('click', function(e) {

  // check if it was the .volume div
  if (e.target.className === 'volume') {
    // do something
  }
});

城市:

attributes: {
name: {
  type: 'string',
  required: true,
  unique: true
},
cities: {
  collection: 'city',
  via: 'country'
}
}

我想找到/创建两个对象并将它们联系起来。这是我的代码:

attributes: {
    name: {
      type: 'string',
      required: true
    },
    country: {
      model: 'country'
    }
}

但它不起作用。如果我用相同的城市称呼它100次& country我希望在DB中只有1个国家实例和1个城市实例。虽然我有一个国家的1个实例,但有100个城市的实例。我做错了什么?

1 个答案:

答案 0 :(得分:0)

正确的代码应该是:

Country.findOrCreate({name: object.Country}).exec(function createFindCB(error, country){
          City.findOrCreate({name: object.City, country:country.id}).exec(function createFindCB(error, city){
            console.log(city);
            console.log(country);
          });
        });