Azure Cosmos DB asking for partition key for stored procedure
If the collection the stored procedure is registered against is a single-partition collection, then the transaction is scoped to all the documents within the collection. If the collection is partitioned, then stored procedures are executed in the transaction scope of a single partition key. Each stored procedure execution must then include a partition key value corresponding to the scope the transaction must run under.
You could refer to the description above which mentioned here.
As @Rafat Sarosh said, GUID Id
is not an appropriate partitioning key
. Based on your situation , city
may be more appropriate.You may need to adjust your database partitioning scheme
because the partitioning key can not be deleted or modified after you have defined it.
I suggest you exporting your data to json
file then import to a new collection which is partitioned by city
via Azure Cosmos DB Data migration tool.
Hope it helps you.
Just for summary:
Issue:
Unable to provide specific partition key value when executing sql to query documents.
Solution:
1.Set EnableCrossPartitionQuery
to true
when executing query sql.(has performance bottleneck)
2.Consider setting a frequently queried field as a partitioning key.