- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有表 Principles 和 Tags。并且它们之间存在多对多关系(joined implicitly)。
在不使用 prisma.raw
的情况下,如何运行以下查询?
SELECT p.id, p.title, p.description, p.createdAt, p.modifiedAt
FROM principle p
WHERE EXISTS (SELECT NULL
FROM _PrincipleToTag pt
WHERE pt.B IN (${tagIds.join(',')})
AND pt.A = p.id
GROUP BY pt.A
HAVING COUNT(DISTINCT pt.B) = ${tagIds.length})
我如何更新此 Prisma 2 查询,以便返回的原则只是与所有提供的 tagId 关联的原则?
export const principles = ({ tagIds }) => {
const payload = {
where: {
//TODO filter based on tagIds
},
}
return db.principle.findMany(payload)
}
The docs提到 contains
和 in
和 every
,但我找不到我正在尝试做的事情的例子。
我正在使用 RedwoodJs、Prisma 2、Apollo、GraphQL。
更新以回应评论:这里是 SDL:
input CreatePrincipleInput {
title: String!
description: String
}
input CreatePrincipleWithTagsInput {
title: String!
description: String
tagIdsJson: String
}
input CreateTagInput {
title: String!
description: String
}
# A date string, such as 2007-12-03, compliant with the `full-date` format
# outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for
# representation of dates and times using the Gregorian calendar.
scalar Date
# A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the
# `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO
# 8601 standard for representation of dates and times using the Gregorian calendar.
scalar DateTime
type Mutation {
createPrinciple(input: CreatePrincipleInput!): Principle
createPrincipleWithTags(input: CreatePrincipleWithTagsInput!): Principle
updatePrinciple(id: Int!, input: UpdatePrincipleInput!): Principle!
deletePrinciple(id: Int!): Principle!
createTag(input: CreateTagInput!): Tag!
updateTag(id: Int!, input: UpdateTagInput!): Tag!
deleteTag(id: Int!): Tag!
}
type Principle {
id: Int!
title: String!
description: String!
tags: [Tag]
createdAt: DateTime!
modifiedAt: DateTime!
}
type Query {
redwood: Redwood
principles(searchQuery: String, tagIds: [Int]): [Principle!]!
tags: [Tag!]!
tagsByLabel(searchTerm: String): [TagCount!]!
tag(id: Int!): Tag!
}
type Redwood {
version: String
}
type Tag {
id: Int!
title: String!
principles: [Principle]
description: String
createdAt: DateTime!
modifiedAt: DateTime!
}
type TagCount {
id: Int!
title: String!
count: Int!
principles: [Principle]
description: String
createdAt: DateTime!
modifiedAt: DateTime!
}
# A time string at UTC, such as 10:15:30Z, compliant with the `full-time` format
# outlined in section 5.6 of the RFC 3339profile of the ISO 8601 standard for
# representation of dates and times using the Gregorian calendar.
scalar Time
input UpdatePrincipleInput {
title: String
description: String
}
input UpdateTagInput {
title: String
description: String
}
最佳答案
看起来您使用的不是 Prisma 2。Prisma 2 使用模型(而不是类型)并且数组分类为 Principles[] 与 [Principles]。也许 Redwood 会进行转换(从未使用过)。
我在 Prisma 2 中创建了您的模型,并使用以下命令获得了一个具有两个关联标签的原则。请记住,其中的 ID 来 self 的测试数据集。希望您可以将其修改为您的代码。如果没有,请使用最少的代码创建一个沙箱/ Playground 供我们测试。
export const principles = async ({ searchQuery, tagIds }) => {
const payload = {
where: {
OR: [
{ title: { contains: searchQuery } },
{ description: { contains: searchQuery } },
],
userId: userIdFromSession,
},
}
if (tagIds.length) {
const whereAnd = []
tagIds.forEach((tagId) => {
whereAnd.push({
tags: { some: { id: tagId } },
})
})
payload.where.AND = whereAnd
}
const result = await db.principle.findMany(payload)
return result
}
关于react-apollo - Prisma 2 查询仅返回与所有提供的标签 ID 关联的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61583460/
我想更改 prisma 文件夹的名称和位置。目前它叫做 prisma,它位于我的 nextjs 项目的根文件夹中。我想将它命名为 db 并将其放在 src 文件夹中。那可能吗?如果是,怎么办? 最佳答
我正在评估 Prisma,我是一个完整的菜鸟...... 我正在使用 Postgresql 我有以下模型定义 model Sth { id Int @d
我正在使用 Prisma 我有一个要搜索的 postgres 表,只查找匹配 where (id 和 accessKey) 或 (id 和 ownerId) 的记录 如果 accessKey 或 ow
上面一个是我在Vercel上部署MongoDB(Atlas URL)后端和Prisma作为ORM时遇到的问题。。我观察到部署时缺少@prisma/client实例。我已经创建了单独的文件Prisma对
上面一个是我在Vercel上部署MongoDB(Atlas URL)后端和Prisma作为ORM时遇到的问题。。我观察到部署时缺少@prisma/client实例。我已经创建了单独的文件Prisma对
我是 Prisma 的新手,虽然到目前为止它非常容易上手,但我遇到了一个我似乎无法找到好的答案的问题。我已经阅读了 docs about relation queries ,但据我了解,Prisma
我找不到任何示例来说明如何使用整数执行此操作,并且我的选项不起作用( 我的表包含 2 列整数,我需要使用 prisma 原始查询向其中添加多行。 如果我只添加 1 行并使用 Prisma.join()
以 Prisma 文档中的架构为例,我想查询 Users 以查找没有任何 posts 的任何用户。我可以像这样破解它,以便它检索所有帖子的 ID 都不大于 0 的每个用户,但这不是很优雅。有更好的方法
这是我的 datamodel.prisma 文件的相关部分。 type Driver { id: ID! @unique zones: [Zone!] @relation(name: "Dri
我正在使用 Prisma 1.9 和 Postgres。 如何重置所有内容?我已经尝试过 prisma local nuke ,但此命令会添加 MySQL 容器(以某种方式),然后抛出端口 4466
以 Prisma 文档中的架构为例,我想查询 Users 以查找没有任何 posts 的任何用户。我可以像这样破解它,以便它检索所有帖子的 ID 都不大于 0 的每个用户,但这不是很优雅。有更好的方法
这是我的 datamodel.prisma 文件的相关部分。 type Driver { id: ID! @unique zones: [Zone!] @relation(name: "Dri
我有以下查询,它给出了所有帖子和所有评论的计数。现在,我想计算已批准字段设置为 true 的帖子的所有评论数。我似乎无法弄清楚这一点。 prisma.post.findMany({ inclu
我发现您现在使用的是 MySQL 和 PostgreSQL,它们支持地理空间类型,我该如何对我的 prisma 执行地理空间查询。 假设我想获取纽约市附近的所有事件? 最佳答案 我使用 Prisma
运行prisma init 不会生成文件。它不会生成下面的 3 个文件。 datamodel.graphql docker-compose.yml 棱镜.yml 最终收到此错误:- { "e
我开始使用这个惊人的工具包,并注意到当我生成迁移文件时,Prisma 还会在新模式旁边创建一个 README 文件。该文件的副标题中恰好有我的个人姓名:This migration has been
我是 Prisma 和 Nodejs 的新手 我不小心创建了许多 Prisma Client 实例,这些实例一直显示警告 warn(prisma-client) 已经有 10 个 Prisma Cli
在 this example ,我们看到: 名称字符串? 不 💯 ? 在这里表示什么...... 最佳答案 这意味着在数据库中。该字段可以为空。这是可选的。 关于prisma-graphql - 定
我正在尝试计算 Prisma2 中的 self 关系(关注者)(使用 PostgreSQL) 型号: model User { id String @id @default(cui
嗨 - 我一直在关注 GraphQL/Prisma 教程 ( https://www.howtographql.com/graphql-js/6-authentication/ ),我想知道为什么要在
我是一名优秀的程序员,十分优秀!