【发布时间】:2017-12-29 19:15:10
【问题描述】:
这是位于名为campaignResponse 的字段之一中的json 对象的结构。
campaignResponse:
{ prop:
{ summary: 't',
retailer: '4',
sent: 't',
queued: 'f',
open: 'f',
spam: 't',
click: 't',
blocked: 'f',
bounce: 'f',
unsub: 'f',
To: 'kartooot@gmail.com',
status: 'clicked',
subject: '',
messageid: '20829150339986762',
From: '',
details: '',
date: '2017-04-03T12:51:38' },
camp2:
{ date: '2017-04-03T12:51:38',
details: '',
From: '',
messageid: '20829150339986762',
subject: '',
status: 'clicked',
To: 'kartooot@gmail.com',
unsub: 'f',
bounce: 'f',
blocked: 'f',
click: 't',
spam: 'f',
open: 't',
queued: 'f',
sent: 't',
retailer: '4',
summary: 'f' },
camp1:
{ date: '2017-04-03T12:51:38',
details: '',
From: '',
messageid: '20829150339986762',
subject: '',
status: 'clicked',
To: 'kartooot@gmail.com',
unsub: 'f',
bounce: 'f',
blocked: 'f',
click: 't',
spam: 't',
open: 'f',
queued: 'f',
sent: 't',
retailer: '4',
summary: 'f' } }
我要更新道具,camp1,camp2。我想通过一个变量来传递它。所以在某一时刻variable = camp1。我想将campaignResponse.variable 设置为obj。但是我收到一个语法错误,说“Unexpected token .”。
User.findOneAndUpdate({email: res[i].email},{$set: {campaignSummary: temp, campaignResponse.varialble: obj}},{new: true},function(err ,result2){
if(err)
callback(err);
else{
console.log(result2);
callback(err,result2);
}
})
请帮帮我。甚至建议更好的方法来做到这一点将不胜感激。 谢谢。
【问题讨论】:
-
你基本上需要做类似
var update = { "$set": { "campaignSummary": temp } }; update['campaignResponse.' + variable] = obj;或者更多的 ES6"ish"{ "$set": { "campaignSummary": temp, ['campaignReponse.'+variable]: obj } }但方法显示在链接的副本中。 -
@NeilLunn 成功了,谢谢:D
标签: json node.js mongodb mongoose