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


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()


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.


Need Your Help

Codemirror autoresize upto a given number of lines

javascript html codemirror

I'm trying to allow codemirror to autoresize up to a given number of lines or pixel height. After this max-size is reached the widget should add scrollbars.

CSS Keep all flexbox children elements the same size

css flexbox

My sass (using compass to get the prefixes) is shown in this fiddle