0

患者にタグを追加する必要があるのは簡単です。多対多の関連付けに関する Sails と Waterline のドキュメントに従いましたが、ある時点で失敗しています (エラーはありません)。データストレージに MongoDB を使用しています。以下のコード:

タグモデル

module.exports = {

attributes: {
  name: 'STRING',
  color: {
      type: 'STRING',
      defaultsTo: '#777777'
  },
  tagged: {
      collection: 'patient',
      via: 'tags',
      dominant: true
  }

}
};

患者モデル

module.exports = {

attributes: {
    name: 'STRING',
    tags: {
        collection: 'tag',
        via: 'tagged'
    }
}
};

そして、これはデータを関連付けようとするコントローラー メソッドです。

module.exports = {

addToPatient: function(req, res) {
    Patient.findOne({id: req.param('patientId')}).exec(function(err, patient) {

        // Queue up a record to be inserted into the join table
        patient.tags.add(req.param('tagId'));

        // Save the user, creating the new associations in the join table
        patient.save(function(err) {});
    });

    res.send("tag assigned");
}
};

さまざまな休憩で応答を調べましたが、すべてがうまくいっているようです。患者が見つかりました。保存機能により、患者オブジェクトにタグの関連付けが表示されますが、データベースには何も追加されません。結合テーブルが作成されているか、関連付けを示すために患者/タグ コレクションに何かが表示されると思いますが、何も表示されません。私はとても混乱しています。HTTP get を実行すると、「タグが割り当てられました」という応答が表示されます。私は何が欠けていますか?

4

1 に答える 1

0

私にとってはうまくいきますが、あなたはタグ患者のコレクションにいるので、関連付けが設定されたフィールドは表示されません。@sgress454 が指摘したような関係を含む、作成された新しい結合コレクションが表示されます。

于 2015-05-15T18:32:26.583 に答える