[英]Can't search data in prisma schema using aonther shcema in nestjs
編輯:
使用 where: { id: userId } don't help
,因為它使用書簽的 id 而不是添加書簽的用戶進行搜索
我的目標是能夠使用來自另一個 model 的 userId 在書簽表中進行搜索。
在這個使用 Prisma 的 model 文件中,我有兩個模型(一個用於用戶,一個用於書簽):
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
email String @unique
hash String
firstName String?
lastName String?
bookmarks Bookmark[]
@@map("users")
}
model Bookmark {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String
description String?
link String
userId Int
user User @relation(fields: [userId], references: [id])
@@map("bookmarks")
}
要使用 userId 創建 seacrh,我使用運行此 function 的 nestjs 服務:
getBookmarksByUserId(userId: number) {
return this.prisma.bookmark.findMany({
where: {
userId: userId
}
});
}
但是當我運行測試時,會彈出一個錯誤:
Unknown arg `userId` in where.userId for type BookmarkWhereInput. Did you mean `id`? Available args:
type BookmarkWhereInput {
AND?: BookmarkWhereInput | List<BookmarkWhereInput>
OR?: List<BookmarkWhereInput>
NOT?: BookmarkWhereInput | List<BookmarkWhereInput>
id?: IntFilter | Int
createdAt?: DateTimeFilter | DateTime
updatedAt?: DateTimeFilter | DateTime
title?: StringFilter | String
description?: StringNullableFilter | String | Null
link?: StringFilter | String
}
我嘗試了一切,使用 AND,使用 equle,使用 include 但沒有成功。
我錯過了什么?
更改 prisma 模式后,如果您已經這樣做,則應該使用此命令生成npx prisma generate
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function getUserBookmarks(userId: number) {
const user = await prisma.user.findUnique({
where: { id: userId },
include: { bookmarks: true },
});
return user?.bookmarks;
}
您可以使用它與用戶 2 一起獲取書簽解決方案是直接在書簽表中獲取書簽
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function getUserBookmarks(userId: number) {
const bookmarks = await prisma.bookmark.findMany({
where: { user: { id: userId } },
});
return bookmarks;
}
當您加入像用戶字段這樣的表時,prisma 會為自己創建虛構的字段,您可以使用它來加入和搜索事物
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.