Falsches Array-Literal beim Einfügen eines Arrays in die PostgreSQL-Spalte
P粉141925181
P粉141925181 2024-01-29 15:46:16
0
1
561

Ich verwende objection.js in meiner App.

Beim Versuch, ein String-Array in eine PostgreSQL-Datenbankspalte einzufügen, ist ein Problem aufgetreten. Die Spalte ist wie folgt definiert:

path TEXT[] NOT NULL

Hier ist das Schema:

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

Ich möchte eine Tabellenspalte mit upsertGraphAndFetch (objection.js) aktualisieren, aber beim Aktualisieren und Einfügen erhalte ich eine Fehlermeldung beim Einfügen des Spaltenpfads upsertGraphAndFetch(objection.js)更新表列,但在更新和插入时,插入列path时出现错误

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

当我传递类似于['chat']

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

Wenn ich einen Pfad ähnlich wie ['chat'] übergebe

rrreee

Wenn ich jedoch versuche, ein Array mit diesem Code einzufügen, erhalte ich die folgende Fehlermeldung:

Array-Literal fehlerhaft: „[„chat“]“ „[“ muss Array-Dimensionen explizit angeben.

'{chat}')和双括号([['chat']]Ich habe versucht, einzelne Klammern (

) zu verwenden, aber keines von beiden hat funktioniert.

Wie formatiere ich ein Array-Literal richtig, damit dieser Fehler beim Einfügen in eine PostgreSQL-Spalte nicht auftritt? 🎜
P粉141925181
P粉141925181

Antworte allen(1)
P粉009828788

要将字符串数组插入到PostgreSQL的TEXT[]类型的列中,您需要将JavaScript数组转换为字符串表示形式,使用花括号和双引号包裹每个元素。

Objection.js中执行以下操作:

// 将数组转换为字符串表示形式
const pathArray = ['chat'];
const pathString = `{${pathArray.join(',')}}`;

// 使用Objection.js将数据插入数据库
await NotificationUserOption.query().upsertGraphAndFetch(
  { userId: ctx.user, path: pathString, groupId, option },
  { insertMissing: true }
);

现在TEXT[]将不会出现任何"malformed array literal"错误。在从数据库查询数据时,Objection.js将处理将其转换回JavaScript数组。

#Apache-Age #posgresql #graphql #objection.js

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage