为什么 .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' }
{ cars: [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
我正在尝试sails.js关联使用单向参考(根据sails.js 在行动 书)。现在,owner 的值已成功插入 owner 列,但未插入 cars 列中的值。
当我尝试 console.log(foundDriver)
和 console.dir(foundDriver)
时,它显示了以下内容:
{ id: 1, 姓名: 'asdf' }
{ cars: [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