gadelkareem / sails-dynamodb

Amazon DynamoDB adapter for Waterline / Sails.js
http://sailsjs.org
46 stars 22 forks source link

Consider showing an example of constructing Model.update in readme. #50

Open elipeters opened 6 years ago

elipeters commented 6 years ago

I found the constructor...

1058 Model.update(values, vogelsOptions, function (err, res) { ... });

So values is my table map and I get an error if I don't include my primary key which is odd considering that this is not likely to change. The error is not useful as it is 'undefined'. ValidationException: Supplied AttributeValue is empty, must contain exactly one of the supported datatypes undefined

...and vogelsOptions would be my search criteria as eg. {where:{id:user.id}}

...eg

User.update(params,{where:{id:req.user.id}}).exec(function(err, res){
  //do something
});

...and yet I'm still not writing to the table. Can anyone show me a working example?

elipeters commented 6 years ago

4 mins later I manage to answer my question... the "odd" part was the key. Swapping the two inputs makes more sense.

User.update({id:req.user.id},params).exec(function(err, res){
  //do something
});

What threw me was

1055 var vogelsOptions = !_.isEmpty(options.where) ? { expected: options.where } : {};
elipeters commented 6 years ago

...also you must return the update for it to execute.

User.update({id:req.user.id},params); //doesn't update 

User.update({id:req.user.id},params).exec(function(err,users){
    //update as expected 
});