не обновляет весь массив
подскажите пожалуйста, как можно обновить весь массив?
у меня почему то находит и обновляет только первую запись
var i = -1;
i++;
var arr = vm.priceRecoms.data[[i]];
console.log(arr);
DataFactory.partnerRecomPrice.updatePartnerRecomPriceArray({
price: arr.recomPrice.deduction,
realizationId: arr.id,
organizationId: vm.org.id,
id: arr.partnerRecomPrice.id
}).$promise.then(function(response){
}).catch(function(err){
});
если не использовать [[i]], массив выводит весь, но не находит и не обновляет записи в partnerRecomPrice console.log(arr); Код:
arr: Object
updatePartnerRecomPriceArray: function (req, res) {
var realizationId = req.param('realizationId');
var organizationId = req.param('organizationId');
var price = req.param('price');
PartnerRecomPrice.findAll({
where: {
organizationId: organizationId,
realizationId: realizationId,
price: price,
}
}).then(function(matchRecords){
if (!matchRecords) {
return req.context.create(PartnerRecomPrice, {
organizationId: organizationId,
realizationId: realizationId,
price: price,
})
} else {
return req.context.update(PartnerRecomPrice, {price: price}, {
where: {id: matchRecords.id}
});
}
}).then(function(response){
res.ok();
}).catch(function(err){
res.serverError(err);
})
},
|
они заменяют дефолтный промис на блюберд чтобы был forEach, последняя ссылка тоже интересная
https://gist.github.com/jagged3dge/1ae038cf050662986121 https://stackoverflow.com/questions/...ult-set-hapijs https://github.com/sequelize/sequelize/issues/1501 |
Цитата:
|
Пример получился такой:
index.js
var Sequelize = require('sequelize')
var sequelize = new Sequelize('product', null, null, {
dialect: "sqlite",
storage: './product.sqlite',
})
var Product = sequelize.define('Product', {
owner_id: Sequelize.STRING,
name: Sequelize.STRING,
price: Sequelize.INTEGER
})
sequelize
.sync({ force: true })
.then(function (err) {
const owner_id = 1
Product.bulkCreate([
{
owner_id: 1,
name: 'one',
price: 100
},
{
owner_id: 1,
name: 'one',
price: 200
}
]).then(() => {
return Product.update({ price: 300 }, { where: { owner_id: 1 } })
// хз тут возможно нужно делать транзакцию, если идти этим путем
// Product.findAll({ where: owner_id }).then(products => {
// products.forEach(product => {
// product.price = 300
// product.save()
// })
// })
}).spread((affectedCount, affectedRows) => {
return Product.findAll()
}).then(products => {
console.log(products)
})
}, function (err) {
console.log('An error occurred while creating the table:', err)
})
package.json
{
"name": "sequelize_findAll_update",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"sequelize": "^4.41.2",
"sqlite3": "^4.0.4"
}
}
|
| Часовой пояс GMT +3, время: 13:43. |