Following code gives me exception in node js saying: \"need remove or update\"
var args = {
query: { _id: _id },
update: { $s
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.
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()