我有一个Prisma模型,假设有10个字段。 比如User模型,拥有firstname、lastname、address、e-mail、phone、mobile、age等。
我正在尝试编写一个更新方法,大多数情况下只想更新某个或仅1个字段,而不是整个用户。如果请求中没有发送该字段,则希望保留数据库中的值。
这种情况最佳实践是什么?我应该检查所有字段是否在请求对象中吗? 我该如何为Prisma编写这个方法?
以下是我想要它工作的示例:
req = {firstname: 'Bob', email: 'bob@bob.bob', etc}
const updateUser = await prisma.user.update({
where: {
email: 'viola@prisma.io',
},
data: {
req.firstname ? (email: req.firstname) : null,
req.email ? (email: req.email) : null,
req.address? (email: req.address) : null,
},
})
我应该检查req中是否存在值,并构建10个版本的数据对象吗:
let customDataObject = {}
if (req.firstname) {
customDataObject.firstname = req.firstname
}
if (req.email) {
customDataObject.email= req.email
}
const updateUser = await prisma.user.update({
where: {
email: 'viola@prisma.io',
},
data: customDataObject,
})