Xamarin Cosmos DB+分区键+存储过程

Xamarin Cosmos DB+分区键+存储过程,xamarin,stored-procedures,azure-cosmosdb,Xamarin,Stored Procedures,Azure Cosmosdb,我有一个Xamarin移动应用程序,可以访问Azure上的Comos DB集合 我的愿望是在存储过程中包含所有SQL查询,这样,如果需要,我可以更改SQL查询服务器端,而无需修改移动应用程序 所以,现在我有一个简单的存储过程。使用select*子句。问题是执行存储的进程。我必须提供一个分区密钥 文档中对此进行了明确描述,请参见此处: 执行存储的进程实际上并不实用。超过我的235把钥匙 你看到问题了吗?你知道最佳实践吗 编辑:我找到了这篇文章,但它没有多大帮助: 执行存储过程时,您不能将Cros

我有一个Xamarin移动应用程序,可以访问Azure上的Comos DB集合

我的愿望是在存储过程中包含所有SQL查询,这样,如果需要,我可以更改SQL查询服务器端,而无需修改移动应用程序

所以,现在我有一个简单的存储过程。使用select*子句。问题是执行存储的进程。我必须提供一个分区密钥

文档中对此进行了明确描述,请参见此处:

执行存储的进程实际上并不实用。超过我的235把钥匙

你看到问题了吗?你知道最佳实践吗

编辑:我找到了这篇文章,但它没有多大帮助:

执行存储过程时,您不能将CrossPartitionQuery选项设置为true吗?@nickchapsa据我所知,它应该可以工作,但我没有直接从Xamarin尝试过。现在,我尝试测试我存储的进程。来自Azure门户,但它需要一个密钥!不确定是否可以在门户上设置这样的标志:-@Krysalid-存储过程的作用域是单个分区。不能对存储过程执行跨分区调用。但在这一点上,对数据库进行正确建模非常重要。例如,为什么需要选择*?为什么需要来自235个分区的所有数据?如果这确实是一个常见的用例,那么您就不需要进行多次调用,也不需要使用不同的分区策略重新构建集合。例如,我有一个集合“user”,分区键是“CountryIsoCode”。我正在搜索这家伙的所有朋友。。。当然,我不知道他们在哪个国家。你看到问题了吗@DavidMakogon@Krysalid-嗯,在不知道应用程序的任何其他细节的情况下,CountryIsoCode似乎不是一个最佳分区键,因为它会导致您的一个基本查询需求出现问题。或者,它可能要求您以不同的方式存储朋友关系—可能是在不同的集合中—以支持此类搜索,同时保留您选择的基于国家的分区。