小编Ιησ*_*αυή的帖子

如何解决 prisma 中的“createMany 不存在...”?

我计划为我的桌子制作一个播种机projects。我用来createMany在一个查询中插入多个数据(参见下面的代码)。但问题是,它无法识别createMany并在运行笑话测试后抛出错误。

另一件让我困惑的事情是,我的代码中没有打字稿错误。我还可以使用create函数创建单个数据。

我已经看过 prisma 文档,但我无法确定我的代码中出了什么问题。有人可以帮我解决一下吗。(评论也会有帮助)。

错误 TS2339:属性“createMany”在类型“ProviderDelegate<RejectOnNotFound |”上不存在 拒绝每次操作 | 未定义>'。


模式棱镜

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "sqlite"
  url      = "file:./dev.db"
}

model Provider {
  id Int @id @default(autoincrement())
  user_id Int
  name String
  space_key String
  api_key String
  projects Project[]
  created_at DateTime @default(now())
  updated_at DateTime @updatedAt
  @@unique([user_id, api_key])
}
Run Code Online (Sandbox Code Playgroud)

我的用法

import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()

...

await prisma.provider.createMany({
  data: [ …
Run Code Online (Sandbox Code Playgroud)

prisma

12
推荐指数
1
解决办法
9265
查看次数

如何有条件地调用“where”子句?棱镜

如何在prisma中有条件地过滤记录?例如,我有一个变量sortByYear可以包含undefinedinteger

我只是想问一下有没有办法重构下面的实现。我尝试查看他们的文档,但找不到。

let result = [];

if (sortByYear) {
    result = await prisma.project.findMany({
        where: { provider_id: 50 }
    })
} else {
    result = await prisma.project.findMany()    
}
Run Code Online (Sandbox Code Playgroud)

在 Laravel 中,我们可以通过使用子句来重构它when,该子句在执行查询之前首先检查变量。Laravel When 子句

prisma

7
推荐指数
1
解决办法
1万
查看次数

我们如何在使用 Slack 的 Block Kit Builder 时提及或标记某人?

我尝试创建 Slack 的块套件构建器,所需的设计实际上很好。但我不知道在哪里可以找到一个按钮,以便我们可以在上面标记某人。


我在这里尝试标记一个名为john的人,但不幸的是它只生成了纯文本,它没有通知该人,也没有变成与预期相同的设计(参见下图结果)查看 游乐场

{
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "@juan \n\nis a mrkdwn section block"
            }
        },
        .....
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是结果

在此输入图像描述

slack slack-block-kit

6
推荐指数
1
解决办法
1万
查看次数

使用upsert时如何判断新插入的数据?棱镜

我下面有一个工作代码,如果数据不存在则插入数据(但如果存在则不更新)。在下面的实现中,我正在循环upsert,它工作得很好。

我的问题是,如何获取那些新插入的数据?(排除已经存在的数据)。您知道如何以尽可能短的方式实现这一目标吗?

我做了一些研究,发现了这个可能的 github 解决方案,但我不明白。因为它还返回数据,即使它已经存在。


this.data = await prisma.$transaction(
  temp.map((provider) =>
    prisma.provider.upsert({
      where: {
        user_id_api_key: {
          user_id: provider.user_id,
          api_key: provider.api_key
        }
      },
      create: provider,
      update: {}
    })
  )
)

console.log(this.data) // it still return data even if its already existing
Run Code Online (Sandbox Code Playgroud)

prisma

6
推荐指数
1
解决办法
544
查看次数

如何在Prisma中使用where in?

我在该搜索用户下方使用两列进行了查询。但它似乎无法正常工作,我假设它正在查询where每列中的子句而不是两列中的子句。

有没有办法可以where ~ in处理两列或更多列?

const users = [
  {
    user_id: 1,
    school_id: 11,
    ..
  },
  {
    user_id: 2,
    school_id: 22
  },
  ..
]

await prisma.user.findMany({
  where: {
    AND: {
      user_id: {
        in: users.map(user => user.user_id)
      },
      school_id: {
        in: users.map(user => user.school_id)
      }
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

问题是它不会同时 user_id搜索和school_id。相反,它搜索两列中的任意一列。我会请求你们的帮助,或者你们有更好的方法来达到相同的结果。谢谢。

prisma prisma2

5
推荐指数
1
解决办法
2万
查看次数

如何计算两个日期之间有多少个星期二和星期三?

输入是一个数组[Tuesday, Wednesday],但它只能存储在一个单元格中。使用此输入我想知道两个日期之间有多少天。

我找到了一个参考,但我不知道如何使其动态,因为它只接受整数工作日。

https://www.extendoffice.com/excel/formulas/excel-count-day-of-week- Between-two-dates.html

SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(start_date&":"&end_date)))=week_day))

有人知道如何实现这一目标吗?


编辑:输入可以是任何格式,只要它只能在一个单元格内

regex sum date count google-sheets

4
推荐指数
1
解决办法
560
查看次数

标签 统计

prisma ×4

count ×1

date ×1

google-sheets ×1

prisma2 ×1

regex ×1

slack ×1

slack-block-kit ×1

sum ×1