J'utilise objection.js dans mon application.
J'ai rencontré un problème en essayant d'insérer un tableau de chaînes dans une colonne de base de données PostgreSQL. La colonne est définie comme suit :
path TEXT[] NOT NULL
Voici le schéma :
path: { type: 'array', items: { type: 'string' }, notNull: true }
Je souhaite mettre à jour une colonne de table en utilisant upsertGraphAndFetch
(objection.js), mais lors de la mise à jour et de l'insertion, j'obtiens une erreur lors de l'insertion du chemin de la colonne 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', }, }) }Lorsque je passe un chemin similaire à
['chat']
rrreee
Cependant, lorsque j'essaie d'insérer un tableau en utilisant ce code, j'obtiens l'erreur suivante :Littéral de tableau mal formé : "["chat"]" "[" doit spécifier explicitement les dimensions du tableau.
'{chat}'
)和双括号([['chat']]
J'ai essayé d'utiliser des parenthèses simples (
Pour insérer un tableau de chaînes dans une colonne de type PostgreSQL
TEXT[]
, vous devez convertir le tableau JavaScript en une représentation sous forme de chaîne, en enveloppant chaque élément à l'aide d'accolades et de guillemets doubles.Faites ce qui suit dans Objection.js :
Maintenant
TEXT[]
il n'y aura plus d'erreurs "littéral de tableau mal formé". Lors de l'interrogation des données de la base de données, Objection.js se chargera de les reconvertir en un tableau JavaScript.#Apache-Age #posgresql #graphql #objection.js