我是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]
}
答案 0 :(得分:2)
我们知道JavaScript是区分大小写的语言,您应该使用 size()
而不是length
使用`diagram.update({$ set:{'string':data.string}});
diagram.js应该是
diagram.js
if (e.target.id == "wrapper" || $(e.target).parents("#wrapper").length)
答案 1 :(得分:0)
确保图表模型中有“string”字段。因为mongoose只允许模式中可用的那些字段。如果没有,那么添加
string: {type: String}
然后使用
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) {
diagram.update({_id: data._id}, { $set: { 'string' : data.string } });
}
}
module.exports = Diagram;