Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud firestore Firestore文档充满键/值或多个文档-哪一个更快/更快?_Google Cloud Firestore - Fatal编程技术网

Google cloud firestore Firestore文档充满键/值或多个文档-哪一个更快/更快?

Google cloud firestore Firestore文档充满键/值或多个文档-哪一个更快/更快?,google-cloud-firestore,Google Cloud Firestore,如果我试图存储电子邮件的键/值对:电话,最好是一个文档中充满电子邮件:电话字段,还是多个文档,其中document.id将是电子邮件,每个文档都列出一个电话 例1: collectionA -> documentA -> "email1": (number) 1234567890, "email2": (number) 1234567899,

如果我试图存储电子邮件的键/值对:电话,最好是一个文档中充满电子邮件:电话字段,还是多个文档,其中document.id将是电子邮件,每个文档都列出一个电话

例1:

 collectionA -> documentA -> "email1": (number) 1234567890,  
                             "email2": (number) 1234567899,  
                             ...
例2:

 collectionA -> documentA -> "email1": (number) 1234567890,   
                documentB -> "email1": (number) 1234567899   
                ...   
如果我有一个100的数据集呢?1000? 几千

我认为示例2会更好,因为示例1要求在访问所需的键/值之前加载整个文档,对吗


编辑:这是基于我知道电子邮件但不知道电话号码。

只有在检查特定用例时才能确定哪一个“更好”。任何一个都不是100%的,都比另一个有充分的优势

#1的问题:

  • 大量条目最终将达到文档的最大限制(1MB),此时写入将失败
  • 如果只查找一个条目,则需要读取所有条目,因为无法读取部分文档(但是,仅在移动客户端上,服务器SDK可以进行投影)
  • 在不知道电子邮件的情况下,不可能按号码查询
#2的问题:

  • 读取整个N组需要N次文档读取。对于非常大的数据集,这可能会比需要的更昂贵,并且可能比读取一个包含所有内容的文档要慢

您必须选择哪些问题对您的预期用例不那么糟糕。

Hey@Doug,感谢您列出了我在这两种方法中没有考虑到的优点和缺点!