2016-11-26 7 views
0

私は(アクション本のsails.jsに応じて)一方向の参照を使用して sails.jsに関連をしようとしています。今度は、オーナーの値がの所有者の列に正しく挿入されましたが、の車の値は挿入されません。なぜ列内に.add()の値を挿入しないのですか?

Iはconsole.log(foundDriver)console.dir(foundDriver)を試みた場合、それは以下のことを示した:

{ID:1、名称: 'ASDF'}

{車:[ゲッター/セッター]、ID:1 、名称: 'ASDF'}

マイテーブル(1:ドライバ、2:):

enter image description hereenter image description here

CODE:

Car.js

module.exports = { 
    connection: 'mysqlAdapter', 
    tableName: 'car', 
    attributes: { 
    id: { 
     type: 'integer', 
     primaryKey: true 
    }, 
    Name: { 
     type: 'string' 
    }, 
    Brand: { 
     type: 'string' 
    }, 
    Model: { 
     type: 'string' 
    }, 
    owner: { 
     model: 'driver' 
    } 
    } 
}; 

Driver.js

module.exports = { 
connection: 'mysqlAdapter', 
tableName: 'driver', 
attributes: { 
    id: { 
    type: 'integer', 
    primaryKey: true 
    }, 
    Name: { 
    type: 'string' 
    }, 
    cars: { 
    collection: 'car' 
    } 
} 
}; 

CarController.js

module.exports = { 
    createCars: function (req, res) { 
     Driver.findOne({ 
      id: 1 
     }).exec(function (err, foundDriver) { 
      if (err) { 
       console.log("Err1" + foundDriver); 
      } 
      if (!foundDriver) { 
       console.log("Err2"); 
      } 
      Car.create({ 
       Name: "car1", 
       Brand: "brnd", 
       Model: "mdl", 
       owner: foundDriver.id 
      }).exec(function (err, createdCar) { 
       if (err) { 
        console.log("Err3"); 
       } 
       foundDriver.cars.add(createdCar.id); 
            foundDriver.save(function (err) { 
              if (err) { 
         console.log(foundDriver); 

         } 
          return res.json({id: 100}); 
        }); 
      }); 
     }); 
    } 
    }; 

答えて

1

'仮想'データのため挿入されません。これらのデータを取得する場合は、2つのテーブルを結合する必要があります。データベースに送信

Driver.find({ 

}).populate('cars').exec(function(error, drivers){ 

}); 

クエリは、次に.add()と.SAVE()関数の目的は何である以上、この

select * from driver inner join car where driver.id = car.owner 
+0

のように見えるのだろうか?実際にデータを挿入する意味ではありませんか?しかし、実質的に保管?私はそれを正しく得たか? –

+0

これはアソシエーションの仕組みです。あなたは多くの場所で同じデータを持っていません。 – Bonanza

+0

*同じデータではありませんか? –

関連する問題