简体   繁体   中英

Mongoose's model.update not working in Node.js

I have a Node.js app that is updating data in a MongoDB database using Mongoose.

I have setup the Mongoose model and I am able to successfully use the model.find, and model.remove functions, but I can't get the model.update function to work.

Can anyone help me?

/* ------------------------ Finding/Querying works ----------------------
Flot.find({ "label": "Trips Per Day"}, function (err, docs) {
  res.jsonp(docs || err);
});
*/



/* ------------------------ Removing works -----------------------
Flot.remove({ "label": "Trips Per Client" }, function (err) {
  if (err) return handleError(err);
  res.json(err || "removed");
});
*/


var conditions = { "label": "Average Tons per Delivery" };
var update = { "label": "Average Tons per Delivery 2" };
var options = { };
var callback = function callback(err, numberAffected, rawResponse) {
    if (err) return handleError(err);

  console.log('Error: ', err);
  console.log('NumberAffected: ', numberAffected);
  console.log('RawResponse: ', rawResponse);

    res.json(err || rawResponse || numberAffected );
};

 Gage.update( conditions, update, options, callback );

I was able to get this working with node-mongodb-native. I'm still not sure why Mongoose wasn't working, but at least I got something to work.

var query = {"label": "Average Tons per Delivery"};
var update = {"type": "vertical"};
var options = {};

MongoClient.connect('mongodb://localhost/db', function(err, db) {
  if(err) throw err;

db.collection('justgage').findAndModify(
    query,
    [['_id','asc']],
    {$set: update},
    options,
    function(err, object) {
      res.jsonp("Ok");
    });
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM