繁体   English   中英

如何将 Firestore 文档从一个集合移动到另一个集合

[英]How to move a firestore document from one collection to another

这是否可以将文档从一个集合移动到 Firestore 数据库中的另一个集合? 我想这样做的原因是,当有人删除订单时,我想将其移动到deleted_order的集合中,而不是删除整个文档以保留历史记录。 我想从我在Kotlin开发的应用程序中执行此操作。

将文档从一个集合移动到另一个集合的唯一方法是使用以下序列,模仿“剪切和粘贴”:

  1. 在目标集合中创建源文档的副本,即从源集合中读取它,获取文档字段并使用这些字段在目标集合中创建一个新文档,然后;
  2. 从源集合中删除文档。

换句话说,没有一种“元数据”附加到定义其父集合的文档,并且您可以通过一个简单的操作进行更改。


另一种方法是将所有order文档放在一个唯一的集合中,并在一个字段中保存订单状态,例如activedeleted 然后更改订单状态只是更新字段的问题。

请注意,这种方法不会对您的查询性能产生任何负面影响,因为 Firestore 查询性能与结果集的大小成正比,而不是数据集的大小。

private void insertAllFromOneCollectionIntoAnother(CollectionReference crFrom, CollectionReference crTo) {
    QuerySnapshot querySnapshot = crFrom.GetSnapshotAsync().Result;
    foreach (DocumentSnapshot documentSnapshot in querySnapshot.Documents) {
        crTo.Document(documentSnapshot.Id.ToString())
            .SetAsync(documentSnapshot.ToDictionary());
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM