我目前正在PostgreSQL数据库中使用以下Prisma模型:
model Product {
productId String @id
name String
color String
events ProductEvent[]
// ...
}
model ProductEvent {
productEventId String @id
productId String
datetime DateTime
status String
product Product @relation(fields: [productId], references: [productId])
}
字符串
我希望能够按状态查询我的产品(即,通过ProductEvent的status
属性进行过滤,并使用最近的datetime
)。
我的查询目前看起来像这样:
await this.client.product.findMany({
include: {
events: {
orderBy: { datetime: "desc" },
take: 1,
},
},
where: {
events: {
some: {
status: "WHATEVER_STATUS"
}
}
}
});
型
当然,where子句忽略了include语句中发生的事情,并查看与产品相关的所有事件(不是我想要的)。
有没有一种方法可以强制prisma只使用选定的字段而不是数据库中的所有字段进行过滤?是否有其他方法让我按状态选择产品?
1条答案
按热度按时间new9mtju1#
您可以通过运行两个单独的查询来实现这一点:
1.查询
ProductEvent
以查找具有所需状态的最新事件。1.根据第一个查询中找到的事件的productId查询
Product
。字符串