Firestore 导入是合并还是覆盖集合?
Do Firestore imports merge or override collections?
假设我有当前的 Firestore 数据:
COLLECTION_1
DOC_A
DOC_B
DOC_C
COLLECTION_2
DOC_X
而且我有一些导出的数据,它们是:
COLLECTION_1
DOC_B // DOC_A IS NOT HERE
DOC_C
DOC_D // DOC_D IS AN "EXTRA"
// COLLECTION_2 IS MISSING
COLLECTION_3 // THERE IS AN "EXTRA" COLLECTION
DOC_3
当我导入数据数据时会发生什么?是否会发生某种“合并”,或者我的整个 Firestore 将被导入的数据替换?我在想 DOC_D
并且肯定会添加 COLLECTIO_3
。但是 DOC_A
和 COLLECTION_2
(导出数据中缺少的那些)在导入后还会存在吗?
PS: 我是在完全导入的情况下问这个问题的(即:所有集合)。
要导入特定的集合,似乎需要使用导出特定集合的导出,并且需要使用gcloud
将其导入回来。 Web 控制台仅允许完全导入。无论如何,我认为完全导入的全局“合并或覆盖”行为可能类似于特定集合的相同行为。
测试速度非常快。结果是
COLLECTION_1
DOC_A
DOC_B
DOC_C
DOC_D
COLLECTION_2
DOC_X
COLLECTION_3
DOC_3
一切都按文档发生。提到的文档说:
If a document with the same ID already exists, the import overwrites
the existing document.
If a document in your database is not affected by an import, it will
remain in your database after the import.
这确实发生了。覆盖导入中存在的文档,添加不存在的文档。如果文档在 Firestore 中但不在导入中,它保持不变。
顺便说一句,如果你在GUI中测试它,你必须在导入后刷新页面。否则更改是不可见的(至少它发生在我身上)。
假设我有当前的 Firestore 数据:
COLLECTION_1
DOC_A
DOC_B
DOC_C
COLLECTION_2
DOC_X
而且我有一些导出的数据,它们是:
COLLECTION_1
DOC_B // DOC_A IS NOT HERE
DOC_C
DOC_D // DOC_D IS AN "EXTRA"
// COLLECTION_2 IS MISSING
COLLECTION_3 // THERE IS AN "EXTRA" COLLECTION
DOC_3
当我导入数据数据时会发生什么?是否会发生某种“合并”,或者我的整个 Firestore 将被导入的数据替换?我在想 DOC_D
并且肯定会添加 COLLECTIO_3
。但是 DOC_A
和 COLLECTION_2
(导出数据中缺少的那些)在导入后还会存在吗?
PS: 我是在完全导入的情况下问这个问题的(即:所有集合)。
要导入特定的集合,似乎需要使用导出特定集合的导出,并且需要使用gcloud
将其导入回来。 Web 控制台仅允许完全导入。无论如何,我认为完全导入的全局“合并或覆盖”行为可能类似于特定集合的相同行为。
测试速度非常快。结果是
COLLECTION_1
DOC_A
DOC_B
DOC_C
DOC_D
COLLECTION_2
DOC_X
COLLECTION_3
DOC_3
一切都按文档发生。提到的文档说:
If a document with the same ID already exists, the import overwrites the existing document.
If a document in your database is not affected by an import, it will remain in your database after the import.
这确实发生了。覆盖导入中存在的文档,添加不存在的文档。如果文档在 Firestore 中但不在导入中,它保持不变。
顺便说一句,如果你在GUI中测试它,你必须在导入后刷新页面。否则更改是不可见的(至少它发生在我身上)。