- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个表 User
和 Post
由自定义的多对多表链接,例如:
model User {
id Int @id @default(autoincrement())
name String
enabled Bool
posts users_to_posts[]
}
model Post {
id Int @id @default(autoincrement())
name String
enabled Bool
users users_to_posts[]
}
model user_to_post {
user user? @relation(fields: [user_id], references: [id])
user_id Int
post post? @relation(fields: [post_id], references: [id])
post_id Int
@@id([user_id, post_id])
}
我正在尝试根据必须启用用户和帖子的帖子 ID 列表获取用户列表。
到目前为止,如果他们在给定的帖子数组中有帖子,我可以获得启用的正确用户,但我无法检查该帖子是否已启用,也无法过滤帖子(我得到了所有帖子如果匹配则与用户关联)
这是我的(几乎)工作代码:
import { PrismaClient, Prisma } from '@prisma/client'
const prisma = new PrismaClient()
export default async function handler(req, res) {
if (req.method !== 'POST') {
res.status(400).send({ message: 'Only POST requests allowed for this route' })
} else {
const { posts_id } = req.query
const posts_array = posts_id.split(",").map(function(item) {
return parseInt(item)
})
const ret = await prisma.user.findMany({
where: {
enabled: true,
post: { some: { post_id: { in: posts_array } }, },
},
include: {
_count: { select: { post: true } }
post: { select: { post: true }, },
},
})
res.status(200).send(ret)
// ...
}
}
我仍在努力理解如何在不依赖 typescript 的情况下进行多个嵌入式选择来使查询正常工作(女巫远非理想)
最佳答案
据我了解,您需要的 2 个约束条件目前未在您的查询中表示。
posts_array
中的帖子,则只返回一个 user
。用户
帖子,使其只包含启用
的帖子。我已更新您的查询以添加这两个条件。
const users = await prisma.user.findMany({
where: {
enabled: true,
posts: {
some: {
post_id: { in: posts_array },
post: {
enabled: true // for constraint 1 (only check/match against the post_ids in post array which are enabled)
}
},
},
},
include: {
_count: { select: { posts: true } },
posts: {
select: { post: true },
where: {
post: {
enabled: true // for constraint 2 (only include the posts which are enabled)
}
}
},
},
})
请记住,users[SOME_IDX]._count.posts
将包含该用户的所有帖子数(包括那些被禁用
的帖子)。如果您只想要启用帖子的数量,则必须检查 users[SOME_IDX].posts
数组的长度。
顺便说一句,根据您的架构,user_to_post
表有些多余。你可以使用 implicit many-to-many对帖子和用户之间的关系进行建模。
关于typescript - 棱镜 : select on many to many with multiple conditions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69976801/
假设我有一对转换函数 string2int :: String -> Maybe Int int2string :: Int -> String 我可以使用光学很容易地表示这些。 stringIntP
在使用镜头时,我偶尔需要在光学链中进行一些基本的文本解析。在我处理的一个 API 中,有一个像这样的 JSON 字段: "timespent": "0.25", 由于它被错误地编码为字符串而不是数字,
我开始学习 OpenGL 并将其与 SFML 2.1 一起使用以获取窗口、加载图像等。但是我遇到了简单棱镜的问题。面部部分透明,看起来很糟糕:/我正在看教程,但我不知道我的代码有什么问题......你
我正在使用 Unity 4.6 开发一个项目。我想知道是否有一种简单的方法来以编程方式设置顶点位置。目前我的代码看起来像这样 (C#): public void createPoints(float
我正在使用 Prism并且它适用于 CSS: p { color: red } 但我不能让它为 html 工作: red text 我有两个问题: 表示为标签,而不是文本,但我可以将其替换为 <
只需阅读精彩的“Lens/Aeson Traversals/Prisms" 文章并拥有一个实际应用程序。给定以下匿名 JSON 结构,我将如何棱镜出一个集合而不是特定值? {"Locations" :
我正在尝试在多对多表(引用自身)上使用 prisma 这样的一行将有子孙 我可以毫无问题地获取所有行,但我正在努力了解如何在可读的 JSON 中排序数据,这将阻止在前端进行解析 预期输出如下:返回的
我正在 Unity 中创建一个 2D sprite 游戏,这是一个 3D 游戏开发环境。我已将对象的所有平移限制在 XY 平面上,并将旋转限制在 Z 轴上。 我的问题是用于检测对象之间碰撞的网格必须仍
我正在尝试在多对多表(引用自身)上使用 prisma 这样的一行将有子孙 我可以毫无问题地获取所有行,但我正在努力了解如何在可读的 JSON 中排序数据,这将阻止在前端进行解析 预期输出如下:返回的
我有两个表 User 和 Post 由自定义的多对多表链接,例如: model User { id Int @id @default(autoincrement()
我有一个包含三个矩阵的列表a和一个具有三个高度(任何正实数)的向量h。这些矩阵形成三角形,即棱柱的底面。我想添加向量h的信息来构造棱镜。 我创建了一个以 2D 形式绘制图形的函数 (pplot)。如何
这个在跟我玩,我似乎无法弄明白 - 我需要一些外部帮助,兄弟们! 我想要一个没有标题、最小化、最大化和关闭按钮的弹出窗口,因为我们想自己设置样式并在弹出窗口的屏幕上添加自定义关闭按钮。 所以我通过这些
我正在扩展 Prism使用自定义语言,我想突出显示类型(int、float、bool)。 我想匹配不以点或 : 符号开头的字符串。 我已经尝试过单独使用正则表达式但无法使其工作,所以我可能必须使用 P
我是一名优秀的程序员,十分优秀!