我有一個 Prisma 模型,可以說有 10 個欄位。想想用戶模型,包括名字、姓氏、地址、電子郵件、電話、手機、年齡等。
我正在嘗試為此撰寫一個更新方法,在大多數情況下,我只想更新部分或僅 1 個欄位。不是整個用戶。如果該欄位未隨請求發送,我想保留資料庫中的值。
最好的做法是什么。我應該檢查 req 物件中的所有欄位嗎?我怎么能為prisma寫這個?
我希望它如何作業的示例:
req = {firstname: 'Bob', email: '[email protected]', etc}
const updateUser = await prisma.user.update({
where: {
email: '[email protected]',
},
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: '[email protected]',
},
data: customDataObject,
})
uj5u.com熱心網友回復:
該undefined屬性在 Prisma 中用于完成您想要實作的目標。基本上,當一個欄位被分配時,undefined它意味著忽略這一點并且對這個欄位不做任何事情。您可以在關于null和undefined檔案的文章中了解更多相關資訊。
這就是您的更新查詢的樣子。
// assuming email, firstname and address fields exist in your prisma schema.
const updateUser = await prisma.user.update({
where: {
email: '[email protected]',
},
data: {
firstname: req.firstname || undefined, // if req.firstname is falsy, then return undefined, otherwise return it's value.
email: req.email || undefined,
address: req.address || undefined
},
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/312239.html
