Google apps script 在保存到scriptDb之前检查重复项

Google apps script 在保存到scriptDb之前检查重复项,google-apps-script,Google Apps Script,我有一个程序,需要将大量数据从Google电子表格存储到scriptDb,但批保存一直挂起,而没有保存整个批。在将对象添加到数组进行批量保存之前,我正在尝试找到一种方法来检查对象是否已经在数据库中。当然,为每个要检查的对象查询数据库将超过最大执行时间 是否有一种有效的方法可以查询数据库一次,并根据该查询检查每个对象,以查看它以前是否存储过?然后,我可以简单地推送一个查询中未找到的对象数组。我知道这可能看起来很愚蠢,但您可以随时从数据库中获取您认为将要覆盖的数据(或者没有子句的Where部分),将

我有一个程序,需要将大量数据从Google电子表格存储到scriptDb,但批保存一直挂起,而没有保存整个批。在将对象添加到数组进行批量保存之前,我正在尝试找到一种方法来检查对象是否已经在数据库中。当然,为每个要检查的对象查询数据库将超过最大执行时间


是否有一种有效的方法可以查询数据库一次,并根据该查询检查每个对象,以查看它以前是否存储过?然后,我可以简单地推送一个查询中未找到的对象数组。

我知道这可能看起来很愚蠢,但您可以随时从数据库中获取您认为将要覆盖的数据(或者没有子句的Where部分),将其存储在一个数组中,从电子表格中获取数据并将其放入数组中,然后在电子表格数组中进行快速迭代。如果数据存在于dbarray中,则将其从电子表格数组中拼接。完成后,将该数据推送到数据库

这样,您只需查询数据库一次,减轻覆盖,并尽可能少地推送


KT

悬挂?如果批量操作失败,您应该会得到一个显示未添加项的结果。您当前用于确定对象是否重复的查询是什么?@DavidF,所谓“挂起”,我的意思是它从未完成批处理保存操作,我必须手动取消它,然后在取消后检查数据库中的内容,结果显示某些项已存储,但其他项未存储,但因为它从未完成,因此没有n“结果”。这已经被其他人作为bug发布了。@ScampMichael,我正在使用
!db.query({ID:item.ID,email:item.email,访问日期:formatVisitDate})。hasNext()
。基本上,如果ID、电子邮件和访问日期相同,我不想在数据库中重复。@DavidF,我之前也发布了关于批量保存问题的问题。这就是我最终要做的-一定是对您回答问题的时间做了更改。很高兴知道我的思路是正确的。