我有这个非常讨厌的问题,我无法使用mongoose更新任何内容.使用它真的很令人沮丧,文档根本没有帮助.
我有这个架构:
var userSchema = mongoose.Schema({ local : { email : String,password : String,},devices : [{ id : String,name : String }] });
function updateDeviceList(user,deviceid,deviceName) { User.update({ 'local.email' : user},{ $set: {'devices.id' : deviceid,'devices.name' : deviceName}},function(err,response) { if(err) { console.log("Update device error",err); } else { console.log("Update device OK"); } }); }
此时我收到错误:
errmsg:’不能使用部件(devices.id的设备)来遍历元素({devices:[]})’}
我无法找到解释为什么会发生这种情况的原因.我必须提到文档(数据库中只有一个文档),这是一个:
{ "_id": { "$oid": "5585a196fe11b21100635c74" },"devices": [],"local": { "password": "$2a$10$7hXVHw7izcYlqbD6xe/te.0w2zucZ7lA007g9kXdoIMPhZhRyCIru","email": "a@a.a" },"__v": 0 }
解决方法
使用$push或其他数组更新运算符向数组添加元素.有关详细信息,请参阅
http://docs.mongodb.org/manual/reference/operator/update/push/#up._S_push
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。