Rumah  >  Soal Jawab  >  teks badan

Tatasusunan literal yang salah apabila memasukkan tatasusunan ke dalam lajur PostgreSQL

Saya menggunakan objection.js dalam apl saya.

Saya menghadapi masalah semasa cuba memasukkan tatasusunan rentetan ke dalam lajur pangkalan data PostgreSQL. Lajur ditakrifkan seperti berikut:

path TEXT[] NOT NULL

Berikut ialah skema:

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

Saya ingin mengemas kini lajur jadual menggunakan upsertGraphAndFetch (objection.js), tetapi semasa mengemas kini dan memasukkan, saya mendapat ralat semasa memasukkan laluan lajur 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',
      },
    })
  }

Apabila saya melepasi laluan yang serupa dengan ['chat']

rrreee

Walau bagaimanapun, apabila saya cuba memasukkan tatasusunan menggunakan kod ini, saya mendapat ralat berikut:

Tatasusunan literal cacat : "["sembang"]" "[" mesti menyatakan secara eksplisit dimensi tatasusunan.

'{chat}')和双括号([['chat']]Saya cuba menggunakan kurungan tunggal (

) tetapi tidak berjaya.

Bagaimana untuk memformat literal tatasusunan dengan betul supaya anda tidak menghadapi ralat ini semasa memasukkan ke dalam lajur PostgreSQL? 🎜
P粉141925181P粉141925181236 hari yang lalu473

membalas semua(1)saya akan balas

  • P粉009828788

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

    Untuk memasukkan tatasusunan rentetan ke dalam lajur jenis PostgreSQL TEXT[], anda perlu menukar tatasusunan JavaScript kepada perwakilan rentetan, membalut setiap elemen menggunakan pendakap kerinting dan petikan berganda.

    Lakukan perkara berikut dalam Objection.js:

    // 将数组转换为字符串表示形式
    const pathArray = ['chat'];
    const pathString = `{${pathArray.join(',')}}`;
    
    // 使用Objection.js将数据插入数据库
    await NotificationUserOption.query().upsertGraphAndFetch(
      { userId: ctx.user, path: pathString, groupId, option },
      { insertMissing: true }
    );

    Sekarang TEXT[] tidak akan ada sebarang ralat "arsuai cacat literal". Apabila menanyakan data daripada pangkalan data, Objection.js akan mengendalikan menukarnya kembali kepada tatasusunan JavaScript.

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

    balas
    0
  • Batalbalas