使用Mongoose更新嵌套对象

时间:2016-11-02 02:20:58

标签: javascript node.js mongodb mongoose mongoose-schema

我正在尝试使用Mongoose更新嵌套对象。但是当我收到请求时,它看起来像这样:

{
'example[apple]': 'false',
'example[pear]': 'false',
'example[banana]': 'false',
'example[orange]': 'false',
}

我的模型看起来像这样:

email: {
    type: String,
    index:true,
    unique: true,
},
example: {
  apple: {type:Boolean, default: true},
  banana: {type:Boolean, default: true},
  pear: {type:Boolean, default: true},
  orange: {type:Boolean, default: true}
}

我发送的对象看起来像这样:

var formData = {
  example: {
    apple: false,
    banana: false,
    pear: false,
    orange: false
  }
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

首先,请求正文     $(this).parent('div').addClass('active');是您可以访问的JSON对象:example.apple等 exampleObject必须首先是JSON对象。 从你的模型看,似乎示例是模型中的属性,所以要更新你必须选择:
1-是通过不提供文件的身份来更新所有文件:
    { 'example[apple]': 'false', 'example[pear]': 'false', 'example[banana]': 'false', 'example[orange]': 'false', }
2 - 按条件更新;首选:     yourmodel.findAndUpdate({no thing here},exampleObject,callBack)
条件可以是= yourmodel.findAndUpdate(condition,exampleObject,callBack)