Mongoose更新查询不能与node.js一起使用

首先我要通过以下方式在mongodb中input内容:

var device = new Device(inputDetailsJson); //device model instance device.save(function(err) { if (err) { res.send(err); } else { res.write('Successful'); res.end(); } }); 

这是设备型号:

 // Dependencies var mongoose = require('mongoose'); var Schema = mongoose.Schema; // Schema Definition var deviceSchema=new Schema ({ "deviceId":{ type : String , unique: true}, "version":{ type : String }, "manufacturer":{ type : String }, "modelname":{ type : String }, }); // Model module.exports = mongoose.model('de', deviceSchema); 

这是inputDetailsJson:

 { "deviceId":"3236172417", "version":"5.2.3", "manufacturer":"abc", "modelname":"example" } 

这些细节input正确,但当我尝试更新的东西,它没有反映任何变化。

 var device=new Device(); device.update({deviceId:"3236172417"},{modelname:"test"} ,function(err) { if (err) { return console.error(err); } else{ res.write('successful'); res.end(); 

即使mongodb数据库中没有更改,它也会显示“成功”。

 var Device = require('your device model file'); Device.model.findOneAndUpdate({ deviceId:"3236172417", },{$set:{modelname:"test}},function(err, user) { }); 

为了更新device你不需要创build一个新的device ,使用var device=new Device();

你应该简单地更新,就像你试图find一个文档一样。

 Device.update({deviceId:"3236172417"},{modelname:"test"} ,function(err) { if (err) { return console.error(err); } else{ res.write('successful'); res.end();