【问题标题】:Mongoose's model.update not working in Node.jsMongoose 的 model.update 在 Node.js 中不起作用
【发布时间】:2013-08-28 04:23:20
【问题描述】:

我有一个 Node.js 应用程序,它使用 Mongoose 更新 MongoDB 数据库中的数据。

我已经设置了 Mongoose 模型,并且能够成功使用 model.find 和 model.remove 函数,但是我无法让 model.update 函数工作。

谁能帮帮我?

/* ------------------------ 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 );

【问题讨论】:

  • 你正在尝试什么不起作用?
  • 您在查找和删除中使用Flot 模型,但在更新中使用Gage
  • Flot 和 Gage 都是不同的集合/模型,我一直试图让它与两者一起工作。 err 记录为 null,numberAffected 显示为 0,rawResponse 显示为 undefined。
  • 那么您在该集合中没有任何与 conditions 匹配的文档。

标签: javascript node.js mongodb mongoose


【解决方案1】:

我能够使用 node-mongodb-native 来解决这个问题。我仍然不确定为什么 Mongoose 不工作,但至少我有一些工作要做。

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");
    });
});

【讨论】:

    猜你喜欢
    • 2019-02-13
    • 2018-07-05
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多