Prisma 创建一个 PostPost的一个字段number来自于所属某个 discussionId 下的最后一个 Post 的number + 1
可以使用以下代码来创建一个帖子(Post)并设置其number字段:
const Prisma = require('@prisma/client');
const prisma = new Prisma.PrismaClient();
async function createPost(discussionId) {
// 找到所属discussionId下的最后一个Post
const lastPost = await prisma.post.findFirst({
where: {
discussionId,
},
orderBy: {
number: 'desc',
},
});
// 计算新的number
const newNumber = lastPost ? lastPost.number + 1 : 1;
// 创建新的Post
const newPost = await prisma.post.create({
data: {
number: newNumber,
discussionId,
// 其他字段...
},
});
return newPost;
}
// 使用示例
const discussionId = 1; // 假设discussionId为1
createPost(discussionId)
.then((newPost) => {
console.log('新帖子创建成功:', newPost);
})
.catch((error) => {
console.error('创建帖子时出错:', error);
})
.finally(() => {
prisma.$disconnect();
});
上述代码中,首先通过prisma.post.findFirst
查询所属discussionId下的最后一个Post,并按number字段降序排序。然后,在得到最后一个Post后,计算出新的number值。最后,通过prisma.post.create
创建新的Post,并设置其number字段为计算得到的新number值。
请注意,上述代码中的discussionId
为硬编码的示例值,实际使用时应根据实际需求传入正确的discussionId
原文地址: https://cveoy.top/t/topic/hXLK 著作权归作者所有。请勿转载和采集!