не обновляет весь массив
подскажите пожалуйста, как можно обновить весь массив?
у меня почему то находит и обновляет только первую запись 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, время: 12:41. |