如何避免在节点,sqlite中插入重复记录[knex,objectionJS]

奔腾的padadune

我正在从api中提取数据并将其存储到数据库中,这是我从api中获取的值:

const optAdThisMonthsResult =  [
            [ 'google.com', 'Display', '2021-02-01', 3, 48, 76 ],
            [ 'google.com', 'a1.php', '2021-02-01', 94, 31, 42 ],
        ]

提取后,我将其存储在数据库中:

for (const data of optAdThisMonthsResult) {

        //1. Assign values to store
        let rowData = {
            url: data[0],
            tags: data[1],
            date: data[2],
            value1: data[3],
            value2:data[4],
            value3: data[5],
        };

        //2. Store to database
        let ret = await OptAd.query().insert(rowData);
        console.log(
            `Inserted OptAd data with return code: ${require("util").inspect(ret)}`
        );
    }

每次我运行此脚本时,它还会存储数据库中已经存在的重复值,如果已经存在数据,则不插入并仅更新此值,如何建立对此的测试 value1 value2 value3

沙申克·帕德沃尔

首先尝试使用Knex更新,如果返回零行,请尝试插入

for (const data of optAdThisMonthsResult) {
  //1. Assign values to store
  let rowData = {
    url: data[0],
    tags: data[1],
    date: data[2],
    value1: data[3],
    value2: data[4],
    value3: data[5],
  };

  // get count first
  const result = await OptAd.query()
    .count("tags as count")
    .where({ url: data[0], taga: data[1], date: data[2] })
    .first();
  try {
    if (result.count === 0) {
      // row not present insert data
      let ret = await OptAd.query().insert(rowData);
      console.log(
        `Inserted OptAd data with return code: ${require("util").inspect(ret)}`
      );
    } else {
      // row already presnt do update
      // checking if its not updated
      const { count } = await OptAd.query()
        .count("tags as count")
        .where(rowData)
        .first();
      if (count === 0) {
        const updated = await OptAd.query()
          .update(rowData)
          .where({ url: data[0], taga: data[1], date: data[2] });
        console.log("updated");
      } else {
        console.log("Not Changed");
      }
    }
  } catch (error) {
    console.log(error.message);
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何避免在节点,sqlite中插入重复记录[knex,objectionJS]

来自分类Dev

如何最好避免在CakePHP中插入重复记录?

来自分类Dev

如何最好避免在CakePHP中插入重复记录?

来自分类Dev

Mongoose:如何避免插入重复记录?

来自分类Dev

如何避免在表类型sql server中插入重复记录

来自分类Dev

避免代码中重复记录

来自分类Dev

提高选择然后插入的性能以避免重复记录(在mysql和php中)?

来自分类Dev

如何使 MongoDB 的列成为 SQL Server 中的主键并避免重复记录?

来自分类Dev

如何防止Rails中的重复记录

来自分类Dev

如何删除SQL中的重复记录?

来自分类Dev

避免在SQL的自反关系中重复记录

来自分类Dev

避免在SQL的自反关系中重复记录

来自分类Dev

避免在键,值结构JS中重复记录

来自分类Dev

避免特定 MySQL 列中的重复记录

来自分类Dev

如何在 SQL Server 中使用用户定义的表类型插入数据时避免重复记录

来自分类Dev

如何保护领域中的重复记录插入

来自分类Dev

如何使用PDO防止重复记录插入

来自分类Dev

如何在不使用不重复的情况下避免一对多关联中的重复记录?

来自分类Dev

SQL中的重复记录

来自分类Dev

MDB正在插入重复记录

来自分类Dev

并发导致重复记录插入

来自分类Dev

使用Npgsql插入重复记录

来自分类Dev

批量插入,忽略重复记录

来自分类Dev

MDB正在插入重复记录

来自分类Dev

并发导致重复记录插入

来自分类Dev

mysql查询插入重复记录

来自分类Dev

插入数据并检查重复记录

来自分类Dev

保证不插入重复记录?

来自分类Dev

如何防止书签表中Rails中的重复记录?