更新架构声明后,Mongoose不会更新新字段

时间:2015-09-18 06:15:07

标签: node.js mongodb mongoose

我刚注意到,当我更新我的架构定义并添加一个字段时,例如" name:String"然后尝试使用

People.update( { _id: user_id }, { $set: { name: 'something' } } ) 

mongoose不会更新我的财产。

我一直在nModified:0响应。

我发现修复它的唯一方法是删除集合,然后新文档将完美运行。

我错过了什么吗?是不是以某种方式mongoose" caches" mongodb本身的一个集合的架构,然后需要一个" drop"为了重新加载"属性?

2 个答案:

答案 0 :(得分:0)

我认为findbyidandupdate会为你完成任务。试试这个链接

Mongoose - findByIdAndUpdate - doesn't work with req.body

答案 1 :(得分:0)

您可以分享您的人物模型,也请使用回调更新。

见下文并且工作正常..

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

var User = mongoose.model('User', { email: String, name: String });
//First added only email and used save to save the document.
//var user = new User({ email: 'john.due@example.com' });
User.update({ _id: '55fbbb268e7307dc0bf9ae92' }, { $set: { name: 'John Due' }}, function(err, result) {
    if(err) throw err;
    console.log(result)
 });