Sails.js如何将数据插入连接表(多对多)

时间:2015-04-01 16:28:45

标签: node.js orm sails.js waterline

我在将数据插入到我的连接表时遇到错误,我不知道我是否以正确的方式执行此操作。 以下是我的2个模型,它们具有多对多关联。

Commit.js:

module.exports = {
  schema: true,
  attributes: {
    idCommit : {
      type: 'integer',
      autoIncrement: true,
      primaryKey: true,
      unique: true
    },
    revision : {
    type: 'integer',
    required: true
    },
    issues: {
      collection: 'issue',
      via: 'commits',
      dominant: true
    }
  }
};

Issue.js:

module.exports = {
  schema: true,
  attributes: {
    idIssue : {
      type: 'integer',
      autoIncrement: true,
      primaryKey: true,
      unique: true
    },
    description: {
    type: 'string',
    required: true
    },
    commits: {
      collection: 'commit',
      via: 'issues'
    }
  }
};

当我尝试以这种方式将问题插入提交时:

Commit.create(commit).exec(function(err,created){
  if (err) {
    console.log(err);
  }
  else { 
    created.issues.add(issues);
    created.save(function(err) {});
  }
});

我的提交已创建,我的问题已创建,但它们之间没有任何链接,并且连接表保持为空。我在哪里弄错了?

1 个答案:

答案 0 :(得分:2)

从您的代码中看起来您尝试添加一系列问题,尝试单独进行关联,就像在Many-to-Many docs

中一样
Commit.create(commit).exec(function(err,created){
  if (err) {
    console.log(err);
  }
  else { 

    issues.forEach(function(issue, index){
        created.issues.add(issue);
    })

    created.save(function(err) {});
  }
});