node.js – Mongoose update’不能使用part(..)来遍历元素

我有这个非常讨厌的问题,我无法使用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

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...