首页 > 解决方案 > AdonisJS - 从数组中更新许多项目

问题描述

因此,我将 AdonisJS 和 PostgreSQL 用于我的后端,并且我试图找到一种方法来更新数组中的许多内容,而无需执行循环,无论是通过 SQL 还是使用 AdonisJS 模型方法。

我有一个像这样的数组(项目数不定):

[
      {
        "id":5,
        "name":"aaaaaaa",
        "price":"5689.78",
      },

      {
        "id":6,
        "name":"bbbbb",
        "price":"5689.78",
      },

      {
        "id":7,
        "name":"cccc",
        "price":"5689.78",
      }
]

假设我有一个名为 products 的表

标签: postgresqladonis.js

解决方案


您可以使用清晰的视角。

const Product = use('App/Models/Product')

const productData = request.collect(['id', 'name', 'price'])
await Product.createMany(productData)

createMany方法进行n查询次数而不是进行批量插入,其中n是行数。

或者您可以使用此代码进行批量插入。您必须明确定义返回列。

await Database
  .insert(array)
  .into('products')
  .returning('id')

推荐阅读