批量更新作为集合操作

Posted

技术标签:

【中文标题】批量更新作为集合操作【英文标题】:Batch update works as set operation 【发布时间】:2021-11-05 12:07:51 【问题描述】:

我需要使用 Firebase 的实时数据库进行批量更新。我是这样做的:

这工作正常。但我只需要第二次操作的更新。此时它作为set 操作。有什么线索吗?

 const updates = ; //batch operation

   // this is working fine and I need it as set operation
    updates[`groups/$this.groupId/leads/$lead.id.toString()`] = 
      name: lead.name,
      address: lead.address,
    ;

    // But problem is here. I need to write it as update operation
    updates[`groups/$this.groupId/addresses/$lead.id.toString()`] = 
      address: lead.address,
     ;

    return this.angularFireDatabase.object('/').update(updates);

【问题讨论】:

【参考方案1】:

在您传入的映射中的每个单独键上,多路径更新的作用是 set。由于您传入 groups/$this.groupId/addresses/$lead.id.toString() 作为键,它设置您指定的值在那条路上。

如果您只想更新该路径下的address 属性,请将address 键包含在路径中,而不是值中:

updates[`groups/$this.groupId/addresses/$lead.id.toString()/address`] = lead.address;

【讨论】:

以上是关于批量更新作为集合操作的主要内容,如果未能解决你的问题,请参考以下文章

SalesForce DML基于集合的操作和原子事务

java集合-Java8新增的Predicate操作集合

Java基础学习总结(194)—— Java 多线程 + List 分段完美解决导入等批量更新场景问题

Java基础学习总结(194)—— Java 多线程 + List 分段完美解决导入等批量更新场景问题

集合框架

Postman接口自动化测试之——批量执行(集合操作)