PostgreSQL 列に配列を挿入するときに間違った配列リテラルが発生する
P粉141925181
P粉141925181 2024-01-29 15:46:16
0
1
563

私はアプリで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粉141925181
P粉141925181

全員に返信(1)
P粉009828788

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

Objection.js:

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

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

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート