Open1
PrismaのCRUD操作

参考:
PrismaのCRUD操作には、create、update、find、deleteがある。
createMany()などで、複数のデータを操作することもできる。
注意点:
updateMany()に配列を渡すとする。
ex
const exArr = [{id:1,name:"a"},{id:2,name:"i"},{id:3,name:"u"}]
try {
const data = await prisma.ex.updateMany({
data: exArr,
});
return c.json({ data: data });
} catch (e) {
return c.json({ error: e });
}
上記はエラーになる。
Prismaを使用して複数のオブジェクトを一度に更新する場合、updateManyメソッドは特定の条件に一致する複数のレコードを同じデータで更新するために設計されている。そのため、異なるデータを持つ複数のオブジェクトを更新する場合は、updateManyを直接使用することはできない。
そこで、個別に更新する必要がある。
各オブジェクトを個別に更新するために、forEachやPromise.allを使用して非同期処理を行う方法
try {
const updatePromises = exArr.map(async (ex) => {
return await prisma.ex.update({
where: { id: ex.id }, // 各オブジェクトのIDを指定
data: { ...ex }, // 更新するデータ
});
});
const updatedData = await Promise.all(updatePromises);
return c.json({ data: updatedData });
} catch (e) {
return c.json({ error: e.message });
}