検索

ホームページ  >  に質問  >  本文

PostgreSQL 列に配列を挿入するときに間違った配列リテラルが発生する

私はアプリでobjection.jsを使用しています。

PostgreSQL データベース列に文字列配列を挿入しようとしたときに問題が発生しました。列は次のように定義されています:

path TEXT[] NOT NULL

これがスキーマです:

path: { type: 'array', items: { type: 'string' }, notNull: true }

upsertGraphAndFetch (objection.js) を使用してテーブルの列を更新したいのですが、更新中に挿入中、列パスの挿入中にエラーが発生します

return NotificationUserOption.query().upsertGraphAndFetch(
        { userId: ctx. user, path, groupId, option },
        { insertMissing: true },

['chat']

await updateGlobalChatNotificationOptIn({
      variables: {
        path: ['chat'],
        option: updatedGlobalChatNotificationOptIn ? '30MinSummary' : 'off',
      },
    })
  }

のようなパスを渡すと、これを使用して配列に挿入しようとしますコード 次のエラーが発生しました:

配列リテラル形式エラー: "["chat"]" 「[」は配列の次元を明示的に指定する必要があります。

一重括弧 ('{chat}') と二重括弧 ([['chat']]) を使用してみましたが、どちらも機能しませんでした。

PostgreSQL 列に挿入するときにこのエラーが発生しないように、配列リテラルを適切にフォーマットするにはどうすればよいですか?

P粉141925181P粉141925181306日前541

全員に返信(1)返信します

  • P粉009828788

    P粉0098287882024-01-30 11:48:17

    文字列配列を TEXT[] 型の PostgreSQL 列に挿入するには、JavaScript 配列を文字列表現に変換し、各要素を中括弧と二重引用符で囲む必要があります。

    Objection.js:

    で次の操作を実行します。 リーリー

    これで、TEXT[] によって "不正な配列リテラル" エラーが発生しなくなります。データベースからデータをクエリする場合、Objection.js はそれを JavaScript 配列に変換して戻します。

    #Apache 時代 #posgresql #graphql #objection.js

    返事
    0
  • キャンセル返事