我是Mongodb的新手,所以下面的代码我试图更新文档字段string我现在基于req.body在帖子_id中收到了对象,我想更新string字段,但是它不使用以下实现来更新记录。如何使用_id更新记录?任何更好的异步更新记录的方法将不胜感激。

routes.js

var Diagram = require('./diagram');
    router.post('/saveUpdateDiagram',function(req,res){
        console.log(req.body._id);
        Diagram.update(req.body);
    });


diagram.js

  var diagram = require('./diagram.model');
var mongoose = require('mongoose');

var Diagram = {
    index: function(callback) {
        diagram.find({}, function(err, result) {
            if (!err) {
                callback(result);
            }
        });
    },
    update: function(data) {
        console.log('data in controller', data);
        Diagram.update({ $set: { 'string' : data.string  } });
    }
}
module.exports = Diagram;


data.json

{
    _id: "57fe42efc3590c7686bad563"
    groups: Array[0]
    owner: "sh587"
    string: "test string should be updated"
    text: "gcs_wf_dit.bpmn"
    users: Array[1]

}

最佳答案

我们知道JavaScript是区分大小写的语言,您应该使用diagram.update而不是Diagram.update

使用`diagram.update({$ set:{'string':data.string}});

diagram.js应该是

diagram.js

var diagram = require('./diagram.model');
var mongoose = require('mongoose');

var Diagram = {
    index: function(callback) {
        diagram.find({}, function(err, result) {
            if (!err) {
                callback(result);
            }
        });
    },
    update: function(data) {
        console.log('data in controller', data);
        diagram.update({_id: data._id}, { $set: { 'string' : data.string  } });
    }
}
module.exports = Diagram;

09-25 15:56