A model is updated using the DataContext#update method, which takes a single object as a parameter. Each propperty of the model should map to a table, and the associated value should be one or more models--an object or an array--containing at least the model's primary key.
Below is an example ($ node example/update/updateSingleModel.js) that updates a single bonuses record by ID. The example's output follows.
'use strict'; const MySQLDriver = require('node-data-mapper-mysql').MySQLDriver; const driver = new MySQLDriver(require('../bikeShopConOpts.json')); driver .initialize() .then(runQuery) .then(printResult) .catch(console.error) .finally(() => driver.end()); function runQuery(dataContext) { // Update a single model by ID. const query = dataContext .update({ bonuses: { // The primary key is required when updating a model. bonusID: 3, amount: 600, reason: 'Super outstanding technical skills.' } }); console.log('Query:'); console.log(query.toString(), '\n'); return query .execute(); } function printResult(result) { // The result object will contain an affectedRows property, which is an // integer that that reflects the number of updated records. console.log('Result:'); console.log(result); }
Query: UPDATE `bonuses` AS `bonuses` SET `bonuses`.`amount` = :bonuses_amount_1, `bonuses`.`reason` = :bonuses_reason_2 WHERE (`bonuses`.`bonusID` = :bonuses_bonusID_0) Result: { affectedRows: 1 }