通常我會做到這一點:無法在JSON對象添加和刪除字段
var res = {};
res = { _id: '[email protected]',
password: 'ABCDEF',
phone: '123123123',
name: 'Torben Tester',
userLog: [
{ date: 1510561026, text: 'was CREATED' },
{ date: 1510593431, text: 'was UPDATED' }
]
}
res.foo = "bar";
delete res.password
delete res.userLog
而且我會最終有:
{ _id: '[email protected]',
phone: '123123123',
name: 'Torben Tester',
foo: 'bar'
}
但是......如果我從記錄MongoDB的
usersTable.findOne (
{ _id: '[email protected]' }
,function (err, data) {
res = data
}
然後水庫仍然是完全一樣
前但是沒有任何修改工作
res.foo = "bar";
delete res.password
delete res.userLog
做什麼都沒有。他們不會返回任何錯誤,並且前後保持不變。
我缺少什麼?當它來自mongodb時,有沒有可能res
是不同類型的? (沒有它不是陣列,我已經檢查過了)
當做console.log(res)
結構在兩種情況下都完全相同。
任何想法都會非常有幫助,完全停留在這一個小時。
只是爲了更清楚....這是實際的代碼...
usersTable.findOne (
{ _id: userID }
,function (err, data) {
show("============BEFORE================")
show({data})
data.agentName = agentName + "XXXX";
delete data.password
delete data.userLog
show("============AFTER================")
show({data})
return resolve(data);
}
是'res = data'後面的'delete res.password'? –
正如'函數(err,data){res = data;刪除res.password; }' – mplungjan
是的。我只是簡化了代碼,使其更簡單 – torbenrudgaard