如果有效负载中的键应该具有某个值(不是未定义或任何假值),我想更新该值。我不想检查使代码冗长的每个值。
await Parent.findByIdAndUpdate(
payload.TID,
{
healthTests: payload.foo,
otherHealthtest: payload.bar,
},
{ new: true, fields: { updatedAt: 0, createdAt: 0, __v: 0 } },
);
答案 0 :(得分:1)
您可以使用Object.entires()
来迭代键和值并构建updateObj
:
let updateObj = {};
for(let [key, value] of Object.entries(payload)){
if(value !== undefined){
updateObj[key] = value;
}
}
await Parent.findByIdAndUpdate(
payload.TID, updateObj,
{ new: true, fields: { updatedAt: 0, createdAt: 0, __v: 0 } },
);
示例:
let payload = { foo: 1, bar: undefined, baz: 3};
let updateObj = {};
for(let [key, value] of Object.entries(payload)){
if(value !== undefined){
updateObj[key] = value;
}
}
console.log(updateObj);