【发布时间】:2019-04-17 13:10:48
【问题描述】:
我目前正在使用 SailsJS 框架,我正在尝试仅使用我的 MongoDB 数据库中的一个查询来更新一组元素。
这是我正在做的,但记录没有更新..
传入的 JSON:
{
"cars": [
{
"id": "5cb5cbd5c395a01b4c9d86da",
"latitude": "-5",
"longitude": "551"
},
{
"id": "5cb5cbd7c395a01b4c9d86db",
"latitude": "-4",
"longitude": "4421",
}
]
}
控制器:
async setLocationOfCars(req, res) {
try {
sails.log.info(controllerName + "::" + req.options.action + "() - called");
const carsLocationArray = req.body.cars;
let response = CarService.setLocationOfCars(carsLocationArray);
switch (response.status) {
case constants.RESOURCE_SUCCESSFULLY_UPDATED :
return HttpResponseService.json(200, res, constants.RESOURCE_SUCCESSFULLY_UPDATED, response.data);
default:
return HttpResponseService.internalServerError(res, response);
}
} catch(err) {
return HttpResponseService.internalServerError(res, err);
}
}
服务:
async setLocationOfCars(cars) {
try {
const arrayOfIdsUpdated = [];
_.forEach(cars, async function(car){
let attributesToUpdate = {};
if (car.hasOwnProperty("latitude")) {
attributesToUpdate.latitude = car.latitude;
}
if (car.hasOwnProperty("longitude")) {
attributesToUpdate.longitude = car.longitude;
}
await Car.updateOne({
id: car.id
}).set(attributesToUpdate);
arrayOfIdsUpdated.push(gateway.id)
});
return {
status: constants.RESOURCE_SUCCESSFULLY_UPDATED,
data : arrayOfIdsUpdated
};
} catch (err) {
return {
status : constants.DATABASE_ERROR,
name : err.name ? err.name : "",
message: err.message ? err.message: "",
stack : err.stack ? err.stack : "",
code : err.code ? err.code : "",
};
}
}
【问题讨论】:
标签: javascript orm sails.js waterline sails-mongo