knexは複数の行を挿入します

Jan Kowalski

knexを使用してpostgresデータベースに多くの行を挿入する際に問題が発生しました。挿入する必要のある動的な行数があります。私が期待する結果は次のとおりです。

行を4回挿入します(4つは例です。フロントエンドから動的に送信されるため、正確な挿入数はわかりません):

  • field_idはすべての行で異なります:(1,2,3,4)-私はこれらのIDの配列を持っています
  • id_of_productは常に同じになります
  • は常に異なります:(フロントエンドからのreq.body [id])-括弧内のIDは、配列のfield_idと同じ値です。

どうすればそれを達成できますか?forEachでループしようとしましたが、非同期操作であるため、.then()は4回呼び出されるため使用できません。

これが私が試したことです。field_idとreq.bodyを動的に取得するように設定する方法がわかりません。

フィールド= [1,2,3,4]

期待される結果:

knexは、次のように4つの挿入を作成します。field_id: 1、product_id:静的ID値: frontValue [1] ETC

knex('metadata').insert(
 [{ field_id: fields, 
    product_id: product_id, 
    value: req.body[fields] 
 }]
)
ハンターマクミレン

私が正しく理解している場合は、metadataテーブルに4つのレコードを挿入します

{ field_id: 1, product_id: X, value: req.body[1] },
{ field_id: 2, product_id: X, value: req.body[2] },
{ field_id: 3, product_id: X, value: req.body[3] },
{ field_id: 4, product_id: X, value: req.body[4] }

同じステートメントに複数のレコードを挿入するには、それぞれがKnexに提供する配列内の個別の要素である必要があります(insert追加の例については、ドキュメントを確認してください)。

const product_id = X;
const fieldsToInsert = fields.map(field => 
  ({ field_id: field, product_id, value: req.body[field] })); 

return knex('metadata').insert(fieldsToInsert)
  .then(() => { /* handle success */ })
  .catch(() => { /* handle failure */});

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Arangodbは複数の行を挿入し、UPSERTを使用します

分類Dev

JDBCは複数の行を挿入します

分類Dev

MSAccessは複数の行を挿入します

分類Dev

SQLiteAsyncConnectionは複数の行を順番に挿入しますか?

分類Dev

AccessはSSMSに複数の行を挿入します

分類Dev

Postgresqlは複数の行で選択を挿入します

分類Dev

knexでwhere()を使用して既存の行に挿入します

分類Dev

MySQLは、ON DUPLICATEKEYを使用して複数の行を挿入/更新します

分類Dev

PHPPDOを使用して複数の行を挿入します

分類Dev

executeを使用して複数の行を挿入します

分類Dev

PDOは単一のクエリに複数の行を挿入します

分類Dev

PostgreSQLはcsvから複数行を挿入します

分類Dev

条件付きの複数の行を挿入します

分類Dev

InvokeThenを使用せずにbookshelfjs(およびknex querybuilder)を使用してmysqlに複数の行を挿入するにはどうすればよいですか?

分類Dev

SQL:一度に複数の行を挿入します

分類Dev

DynamoDBにjsonの複数行を挿入します

分類Dev

列名が異なる複数の行を挿入します

分類Dev

PHP分割バッチで複数の行を挿入します

分類Dev

クエリの複数行から値を挿入します

分類Dev

mysql行に複数のIDを挿入します

分類Dev

SQL ServerCE複数の行を挿入します

分類Dev

条件に基づいて複数の行を挿入します

分類Dev

複数の<select>オプションを複数の行に挿入します

分類Dev

Knex.js:forループで複数のデータを挿入する方法は?

分類Dev

MariaDBは、複数のサブクエリを持つ複数の行に「挿入」します

分類Dev

クエリは、複数の行ではなく1つの行のみを挿入します

分類Dev

行をループし、MySQLに複数の行を挿入します

分類Dev

Flask-SQLAlchemyは複数の辞書を挿入します

分類Dev

複数の行を挿入すると、重複はどうなりますか?

Related 関連記事

  1. 1

    Arangodbは複数の行を挿入し、UPSERTを使用します

  2. 2

    JDBCは複数の行を挿入します

  3. 3

    MSAccessは複数の行を挿入します

  4. 4

    SQLiteAsyncConnectionは複数の行を順番に挿入しますか?

  5. 5

    AccessはSSMSに複数の行を挿入します

  6. 6

    Postgresqlは複数の行で選択を挿入します

  7. 7

    knexでwhere()を使用して既存の行に挿入します

  8. 8

    MySQLは、ON DUPLICATEKEYを使用して複数の行を挿入/更新します

  9. 9

    PHPPDOを使用して複数の行を挿入します

  10. 10

    executeを使用して複数の行を挿入します

  11. 11

    PDOは単一のクエリに複数の行を挿入します

  12. 12

    PostgreSQLはcsvから複数行を挿入します

  13. 13

    条件付きの複数の行を挿入します

  14. 14

    InvokeThenを使用せずにbookshelfjs(およびknex querybuilder)を使用してmysqlに複数の行を挿入するにはどうすればよいですか?

  15. 15

    SQL:一度に複数の行を挿入します

  16. 16

    DynamoDBにjsonの複数行を挿入します

  17. 17

    列名が異なる複数の行を挿入します

  18. 18

    PHP分割バッチで複数の行を挿入します

  19. 19

    クエリの複数行から値を挿入します

  20. 20

    mysql行に複数のIDを挿入します

  21. 21

    SQL ServerCE複数の行を挿入します

  22. 22

    条件に基づいて複数の行を挿入します

  23. 23

    複数の<select>オプションを複数の行に挿入します

  24. 24

    Knex.js:forループで複数のデータを挿入する方法は?

  25. 25

    MariaDBは、複数のサブクエリを持つ複数の行に「挿入」します

  26. 26

    クエリは、複数の行ではなく1つの行のみを挿入します

  27. 27

    行をループし、MySQLに複数の行を挿入します

  28. 28

    Flask-SQLAlchemyは複数の辞書を挿入します

  29. 29

    複数の行を挿入すると、重複はどうなりますか?

ホットタグ

アーカイブ