由id更新不在mongoose中工作

时间:2015-04-01 12:39:07

标签: javascript node.js mongodb

我有一个代码,我在其中使用mongoose和使用模式建立新连接。连接正确,我也从集合中获取属性。之后我想在我的收藏中更新,那是行不通的..我有以下代码

console.log("id : "+content._id); 
Alert.findByIdAndUpdate(content._id, {
    $set: {
        status: true
    }
}, function(error, result) {
    console.log(result);
    if (error) console.log(error);
    else {
        console.log('Alert updated');
    }
});

它显示警报已更新但状态仍为false ..

result for 1st console is 
id : 55096a5f91169c8e1673af20; 

and 2nd console is
Alert updated

提前致谢和问候

2 个答案:

答案 0 :(得分:1)

您的代码看起来很完美,ID看起来是正确的,而且您的代码不会返回任何错误,因此,

  

您是否检查过您的架构,看它是否包含" status"场?

看起来你可以创建和编辑两面不相等的架构的新文档,应用数据层。

此处有更多信息:https://github.com/Automattic/mongoose/issues/1060

希望我能帮到你。

答案 1 :(得分:0)

您的代码也适合我,也许可以尝试以下其中一项?

Alert.findOne({_id : content._id}, function(error, alert) {
    if (error) console.log(error);
    alert.status = true;
    alert.save();
});

或者

 Alert.findOneAndUpdate({_id : content._id}, {
        $set: {
            status: true
        }
    }, function(error, result) {
        console.log(result);
        if (error) console.log(error);
        else {
            console.log('Alert updated');
        }
    });