Skip to content
This repository was archived by the owner on Jul 29, 2026. It is now read-only.
This repository was archived by the owner on Jul 29, 2026. It is now read-only.

UPDATE doesn't work in mongoose #2221

Closed

Description

@thomsa

Hi!

I've encountered an error while trying to update entities.

This is the generated code:
findOneAndUpdate(req.params.id, req.body, {upsert: true, setDefaultsOnInsert: true, runValidators: true}).exec()
It was always updating the first element in the collection, because it's not specified what field it should compare.
As in the mongoose documentation:
query.findOneAndUpdate(conditions, update, options)
The condition is not really a condition in the generated code.

I had to change it to the code below and it started to work as expected
entity.findOneAndUpdate({"_id" : req.params.id }, req.body, {upsert: true, setDefaultsOnInsert: true, runValidators: true}).exec()

Has anybody encountered this problem, or is it written in some documentation that this is what we have to do if we want it to work? I haven't found it in any docs though.

Activity

  1. dnewman-polar3d commented on Sep 11, 2016

    @dnewman-polar3d

    I too have encountered this in the past. However, I do not recall if it was in auto-generated code or simply my own mistake. That said, the call

    findOneAndUpdate(req.params.id, req.body, {upsert: true, setDefaultsOnInsert: true, runValidators: true}).exec()

    is certainly incorrect; the first call argument must be a condition and in this case should be as you show in the second statement. It is annoying that mongoose doesn't detect this and treat it as an error.

  2. thomsa commented on Sep 11, 2016

    @thomsa
    Author

    If someone will verify that this is a bug, I can create a pull request later on.

  3. added this to the Soon milestone on Sep 13, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions