首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >普里斯玛:我能把两个模型合并成一个数据库吗?

普里斯玛:我能把两个模型合并成一个数据库吗?
EN

Stack Overflow用户
提问于 2022-07-14 12:00:49
回答 1查看 106关注 0票数 0

Prisma模式中有两个独立的模型。

我需要将这两种模型结合起来,并通过createdAt进行排序。

这两种模型都有createdAt。

这样我就想得到两个由createdAt排序的数据。

这有可能在普里斯马把两种模式结合起来吗?

代码语言:javascript
复制
model Feed {
  id Int @id @default(autoincrement())
  user User @relation(fields: [userId], references: [id], onDelete: Cascade)
  userId Int
  photos String[]
  caption String
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  likes Like[]
  comments Comment[]
}

model Poem {
  id Int @id @default(autoincrement())
  user User @relation(fields: [userId], references: [id], onDelete: Cascade)
  userId Int
  poemTitle String
  poemCaption String
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  poemLikes Poemlike[]
  poemComments Poemcomment[]
}

还是我只能在前端做?

问题是,每个模型的前端数据为2。

(前)

代码语言:javascript
复制
Feed Data: 2022-06 / 2022-07 / 2022-08
Poem Data: 2022-09 / 2022-10 / 2022-11

然后我需要对它们进行排序:诗11首->诗10首->诗09 -> feed 08 -> feed 07 -> feed 06

但是,由于我在2之前得到数据,所以在当前屏幕上我只得到数据。

代码语言:javascript
复制
Feed Data: 2022-07 / 2022-08
Poem Data: 2022-10 / 2022-11

然后排序将是:诗11 ->诗10 ->提要08 -> feed 07

诗09消失了。

我该如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-14 13:35:28

如果这两个模型没有共享关系,则需要分别查询它们,组合数组,然后按createdAt排序。

代码语言:javascript
复制
const [feeds, poems] = await Promise.all([
  prisma.feed.findMany(), // add whatever filters you need to the "findMany" call
  prisma.poem.findMany()
]);
const dataToSort = [...feeds, ...poems];
const sortedData = dataToSort.sort((itemA, itemB) => {
  return new Date(itemA.createdAt).getTime() - new Date(itemB.createdAt).getTime()
});
return sortedData;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72980150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档