Sequelize update does not work anymore: "Missing where attribute in the options parameter passed to update"

15,356

Apparently, the docs have not been updated yet. But the table's where row of the Model.update API docs suggests prefixing your selection with where, like so:

var gid = ...;
var uid = ...;

var values = { gid: gid };
var selector = { 
  where: { uid: uid }
};
myModel.update(values, selector)
.then(function() {
    // update callback
});

And it works!

UPDATE:

The docs have since been updated (and the docs have also been moved). Check out Model.update on docs.sequelize.com. Note that options.where is not optional (it is not in brackets []).

Share:
15,356
Domi
Author by

Domi

I am a Ph.D. student in computer science, programming for some 20+years. My object of research is a new way of understanding and interacting with JavaScript, using Dbux, a novel Integrated Debugging Environment (IDbE). It visualizes the JS runtime and makes it highly interactive, ideal for in-depth analysis of execution behavior. I am also working as a programming coach and freelancer; currently mostly interested in helping people learn how to solve complex JavaScript-related problems, as that is most aligned with my research.

Updated on June 08, 2022

Comments

  • Domi
    Domi almost 2 years

    The official API documentation suggests using Model.update like this:

    var gid = ...;
    var uid = ...;
    
    var values = { gid: gid };
    var where = { uid: uid };
    myModel.update(values, where)
    .then(function() {
        // update callback
    });
    

    But this gives me: "Missing where attribute in the options parameter passed to update". The docs also mention that this usage is deprecated. Seeing this error makes me think, they already changed it. What am I doing wrong?