为什么 .add() 不在列中插入值?

Why doesn't .add() insert value in the column?

我正在尝试sails.js关联使用单向参考(根据sails.js 在行动 书)。现在,owner 的值已成功插入 owner 列,但未插入 cars 列中的值。

当我尝试 console.log(foundDriver)console.dir(foundDriver) 时,它显示了以下内容:

{ id: 1, 姓名: 'asdf' }

{ car​​s: [Getter/Setter], id: 1, Name: 'asdf' }

我的表(1:driver,2:汽车):

代码:

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});
                    });
            });
        });
    }
    };

它不会被插入,因为它有 'virtual' 数据。当您想要获取这些数据时,您需要加入这两个表。

Driver.find({

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

});

发送到数据库的查询看起来更像这样

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