首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修复递归集合备份

修复递归集合备份
EN

Stack Overflow用户
提问于 2020-06-01 07:26:17
回答 1查看 345关注 0票数 1

是否可以备份集合的层次结构?

我们将数据存储为:

代码语言:javascript
复制
 * users
     * user1
         * userInfo (on the user1 document)
         * accounts
             * account1
             * account2
         * jobs
             * job1
             * job2
             * job3
     * user2...

 * chats
     * chat1
         * chat metadata (on the chat document)
         * messages
             * message1
             * message2
         * chatUsersInfo
             * userInfo1
             * userInfo2
             * userInfo3 

(还有更深层次的子集合)

我在备份作业https://firebase.google.com/docs/firestore/solutions/schedule-export中使用了这个例子

是否有一种方法可以备份现有的数据,而不仅仅是其第一级文档?

是否可以只恢复层次结构的一部分(即还原user1数据)?

是否有办法从备份(即作业)中排除某些集合?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-02 10:19:37

  • 是否可以备份集合的层次结构?

只能使用collectionsIds字段筛选特定集合。下面是一个使用命令的示例。

通常,如果您只需要备份特定的数据,则需要创建一个应用程序来进行相关查询,以读取您感兴趣的相关集合或文档,并以您认为更方便的任何地方(例如云存储)保存它。

  • 是否有一种方法可以备份现有的数据,而不仅仅是其第一级文档?

正如我在前面的问题中所建议的那样,如果您只对整个Fi还原实例中的特定数据进行备份,则需要创建一个应用程序来查询要导出的特定数据(请参考文档获取所需的特定查询:要么在文档中列出子集合,要么从集合组获取多个文档,等等)。

  • 是否可以只恢复层次结构的一部分(即还原user1数据)?

您将无法还原层次结构的特定部分,但您可以以类似的方式进行使用collectionsIds字段只导入一组特定的集合

gcloud防火墙导入gs://BUCKET_NAME/EXPORT_前缀/-COLLECTION-ID=COLLECTION_ID_1,COLLECTION_ID_2

  • 是否有办法从备份(即作业)中排除某些集合?

注意,正如在您的示例共享上解释的那样,您可以使用collectionsIds字段创建一个只包含要导出的集合的列表(因此,如果不添加不想导出的集合,就可以将它们排除在导出操作之外)。

代码语言:javascript
复制
  return client.exportDocuments({
    name: databaseName,
    outputUriPrefix: bucket,
    // Leave collectionIds empty to export all collections
    // or set to a list of collection IDs to export,
    // collectionIds: ['users', 'posts']
    collectionIds: []
    })
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62127439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档