Is partition key needed in queries even though JSON is indexed

Viewed 3770

I'm planning on using Cosmos Db (Document Db) and I'm trying to understand how the queries, indexing and partitions relate to each other.

How to partition and scale in Azure Cosmos Db talks about the partition key and other documentation indicates that partition key + id = unique id for the document. But then SQL Query and SQL syntax in Azure Cosmos Db says it provides automatic indexing of JSON documents without requiring explicit schema or creation of secondary indexes.

I understand that partition key is important for scalability and how data is stored. But if we think about searching is the partition key kind of like extra filter/where clause? All the documents are indexed so I can execute query like:

SELECT * 
FROM Families
WHERE Families.address.state = "NY"

Should I still specify the partition key or indicate some how that cross partition queries are allowed when using this SQL query syntax?

3 Answers

You don't have to do that anymore, EnableCrossPartitionQuery is set to true by default nowadays. This means Cosmos won't complain if you don't skip the partition key in your query.

More info here.

You don't need to specify a partition key to the query. Recent version enabled cross partition queries by default

Related