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

时间:2016-08-25 07:31:22

标签: node.js mongodb mongoose

首先,我在mongodb中输入:

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

正确输入这些详细信息,但当我尝试更新某些内容时,它不会反映任何更改。

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数据库中没有进行任何更改。

2 个答案:

答案 0 :(得分:2)

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

});

答案 1 :(得分:0)

要更新device,您无需使用device

创建新的var device=new Device();

您应该更新,就像您尝试查找文档一样。

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