Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Azure cosmosdb 我应该为子文档使用_SelfLink吗_Azure Cosmosdb - Fatal编程技术网

Azure cosmosdb 我应该为子文档使用_SelfLink吗

Azure cosmosdb 我应该为子文档使用_SelfLink吗,azure-cosmosdb,Azure Cosmosdb,在构建文档结构时,让我们假设我们有两种文档:Person和Pet。两者都可以是单独的文档,同时宠物也可以是个人收藏的宠物 如果Pets集合中的子文档是一种更简单的类型,那么如果我需要查找原始Pet文档(这是其中的一个子集),那么包含原始Pet中的自链接是否是一个好主意 这是在CosmosDb中查找文档的最有效方法,还是应该只使用其ID和已知文档集合 自链接是数据库帐户中每个资源的静态可寻址Uri,遵循Azure Cosmos DB资源模型。 例如,文档的自链接可以是dbs/db_resource

在构建文档结构时,让我们假设我们有两种文档:Person和Pet。两者都可以是单独的文档,同时宠物也可以是个人收藏的宠物

如果Pets集合中的子文档是一种更简单的类型,那么如果我需要查找原始Pet文档(这是其中的一个子集),那么包含原始Pet中的自链接是否是一个好主意

这是在CosmosDb中查找文档的最有效方法,还是应该只使用其ID和已知文档集合

自链接是数据库帐户中每个资源的静态可寻址Uri,遵循Azure Cosmos DB资源模型。 例如,文档的自链接可以是dbs/db_resourceid/colls/coll_resourceid/documents/doc_resourceid

当您查看SelfLink的内容时,差异相当有限。它包含id、集合和数据库。如果您知道id和集合,那么无论哪种情况,您都可能能够有效地找到文档,因为您可以重建SelfLink

我的建议是使用单独的字段,而不是SelfLink。对于未来的用例来说,这可能是较少的工程工作。原因是它将允许您执行以下操作:

无需构建复杂的查询链接(如通过collectionId或pet id)即可更轻松地进行查询 将数据迁移到新数据库更新数据会更容易一些
然而,两者之间的差别很小。如果您引用的是更外部的资源,或者您将数据分散到多个集合中,并且需要通过selflink进行非常高效的查询,我只会使用链接。

我明白了这一点,并且看到了仅使用文档ID的一些好处。谢谢你的意见