Mongodb findAndModify node js

Following code gives me exception in node js saying: "need remove or update"

var args = {
                query: { _id: _id },
                update: { $set: data},
                new: true,
                remove:false
            };

            db.collection(COLLECTION.INVENTORY_LOCATION).findAndModify(args,
                function (err, results) {
                    if (err) {
                        return callback(err);
                    } else {
                        console.log(results);
                        callback(null, results);
                    }
                });

Not able to figure out the issue as I have specified the update operation.

Answers:

Answer

The syntax is different in the node driver than for the shell, which is the syntax you are using.

db.collection("collection_name").findAndModify(
    { _id: _id },     // query
    [],               // represents a sort order if multiple matches
    { $set: data },   // update statement
    { new: true },    // options - new to return the modified document
    function(err,doc) {

    }
);

There is a separate function for .findAndRemove()

Answer

As the documentation for the remove parameter of the findAndModify function states:

remove: <boolean>:
Must specify either the remove or the update field. Removes the document specified in the query field. Set this to true to remove the selected document . The default is false.

The default value is false so you don't have to provide it at all.

I believe the issue is that you are supplying both update and remove parameters. Try removing the remove parameter.

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.