我刚注意到,当我更新我的架构定义并添加一个字段时,例如" name:String"然后尝试使用
People.update( { _id: user_id }, { $set: { name: 'something' } } )
mongoose不会更新我的财产。
我一直在nModified:0响应。
我发现修复它的唯一方法是删除集合,然后新文档将完美运行。
我错过了什么吗?是不是以某种方式mongoose" caches" mongodb本身的一个集合的架构,然后需要一个" drop"为了重新加载"属性?
答案 0 :(得分:0)
我认为findbyidandupdate会为你完成任务。试试这个链接
答案 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)
});