{"id":5011,"date":"2015-12-15T00:00:00","date_gmt":"2015-12-15T00:00:00","guid":{"rendered":"https:\/\/azure.microsoft.com\/blog\/documentdb-paging-support-with-top-and-more-query-improvements"},"modified":"2025-09-18T08:51:05","modified_gmt":"2025-09-18T15:51:05","slug":"documentdb-paging-support-with-top-and-more-query-improvements","status":"publish","type":"post","link":"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/","title":{"rendered":"DocumentDB paging support with TOP and more query improvements"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">We\u2019re pleased to announce a number of improvements in how you can query Azure DocumentDB. With the latest service update, we have added the TOP keyword to our SQL grammar, made queries run faster and consume fewer resources, increased the limits for query operators, and added support for additional LINQ operators in the .NET SDK.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is the list of changes deployed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><strong>New SQL keywords: <\/strong>TOP for paging and limiting results from a query.<\/li>\n\n\n\n<li class=\"wp-block-list-item\"><strong>Limit increases:<\/strong> You can now use up to 20 ORs and 200 items within an IN expression.<\/li>\n\n\n\n<li class=\"wp-block-list-item\"><strong>Performance improvements: <\/strong>The query engine now has faster filtered sort queries, better index plan optimization and improved incremental processing of queries with large result-sets.<\/li>\n\n\n\n<li class=\"wp-block-list-item\"><strong>New LINQ operators:<\/strong> Support for a number of additional LINQ operators \u2013 including Take(), CompareTo(), conditional and coalesce operators.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In this post, we\u2019ll take a look at what\u2019s changed and how you can take advantage of these changes to build fast and scalable applications using Azure DocumentDB.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"paging-and-limiting-query-results-with-top\">Paging and limiting query results with TOP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The DocumentDB SQL grammar now includes the TOP keyword, which can be used within SQL queries while querying DocumentDB. TOP can be used to page through query results or to limit the number of results coming back from a query.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSELECT TOP 100 *\nFROM food\nWHERE food.foodGroup = \"Snacks\"\nORDER BY food.description\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">TOP can be used within any valid DocumentDB query, and the number of items can also be supplied as a parameter via parameterized queries. You can also use TOP in&nbsp; combination with ORDER BY to implement MIN, MAX and FIRST semantics within DocumentDB queries.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For more information, please refer to the documentation on <a href=\"https:\/\/azure.microsoft.com\/documentation\/articles\/documentdb-sql-query\/#basics-of-a-documentdb-sql-query\">DocumentDB query<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"limit-increases-for-various-sql-operators\">Limit increases for various SQL operators<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We recently announced a number of limit increases in the number of AND, JOIN and UDF operators supported within DocumentDB queries. We heard from many framework developers about the need for higher limits for OR and IN operators per query to build flexible query APIs. We\u2019re happy to announce that we have lifted the following limits:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Maximum number of OR clauses per query, increased to 20<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Maximum number of values specified in IN expressions per query, increased to 200<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">With this change, you can fetch larger batches of items by using IN, or the equivalent <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/bb339118(v=vs.110).aspx\">IEnumerable.Contains<\/a> operator within LINQ, and limit the number of round trips to DocumentDB.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/* Up to 200 values in query *\/\nSELECT *\nFROM food\nWHERE food.id IN (\n    \"0326\", \"0327\", \"0329\", \"03230\"\n) \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">For a complete list of DocumentDB limits, refer to the <a href=\"https:\/\/azure.microsoft.com\/documentation\/articles\/documentdb-limits\/\">documentation page<\/a>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"performance-improvements-in-the-sql-query-engine\">Performance improvements in the SQL query engine<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">We have also made a number of performance improvements in the DocumentDB query engine to reduce the request unit (<a href=\"https:\/\/azure.microsoft.com\/documentation\/articles\/documentdb-manage\/#request-units-and-database-operations\">RU<\/a>) consumption of queries, reduce the latency of queries, and reduce the number of round trips required to serve long running queries.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"faster-filtered-sort-queries\">Faster filtered sort queries<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We added support for performing query logical plan optimizations across sort and filter expressions. For example, if you have queries using a filter and sort against the same property, they will be in an order of magnitude faster and require much fewer round trips.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">If you use the Azure Search connector with DocumentDB, you\u2019ll notice that your indexer consumes far fewer RUs and completes faster due to this optimization.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">More generally, if you have an application that reads data in-order based on a range filter like shown below, your queries will consume fewer RUs and complete faster.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/* Now an order of magnitude faster! *\/\nSELECT * \nFROM deviceTelemetry \nWHERE deviceTelemetry._ts > @highWaterMark\nORDER BY deviceTelemetry._ts\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Performance Tip:<strong>\u200b<\/strong>&nbsp;If you have queries already using range filters, (using timestamp values), you should consider adding an ORDER BY clause against the same property to take advantage of this optimization.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"better-index-plan-optimization\">Better index plan optimization<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The DocumentDB query execution engine is now smarter in analyzing query filter expressions and performing runtime optimizations like re-ordering expressions and assessing tradeoffs between executing and skipping expensive filters. This change will result in a broad spectrum of queries executing faster, and consuming lesser RUs.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/* In this query, DocumentDB will re-order expressions to improve performance *\/\nSELECT *\nFROM loggedMetrics l\nWHERE l._ts > @highWaterMark \n\u200bAND l.traceLevel = 'Critical'\nAND l.appName = 'BackendWorkerRole'\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"improved-incremental-processing\">Improved incremental processing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">DocumentDB supports long running queries via continuation tokens. DocumentDB allocates a fixed amount of time and resources to each query, and when that is reached, returns a continuation token which acts as a bookmark for resuming execution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DocumentDB does not maintain additional state server side for a query; all of this is self-contained within the token, which means they never expire and can be cached by clients. We made significant improvements in how we encode state within continuations for queries with large result sets.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/* Query that scans documents to build a COUNT client-side *\/\nSELECT VALUE 1\nFROM loggedMetrics\nWHERE loggedMetrics.startTime >= \"2015-12-12T10:00:00Z\u201d \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">If you have queries like the one shown above, then you may see a 2-3x reduction in RU consumption and execution time.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"new-linq-operators\">New LINQ operators<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The latest <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Azure.DocumentDB\/\">DocumentDB .NET SDK release 1.5.2<\/a> has expanded support for LINQ query translation including new operators for paging, conditional expressions and range comparison. With this change, you can write fluent LINQ expressions for more scenarios to interact dynamically with DocumentDB without having to build SQL strings. For a full list of supported LINQ operators, please refer to the <a href=\"https:\/\/azure.microsoft.com\/documentation\/articles\/documentdb-sql-query\/#linq-to-documentdb-sql\">LINQ documentation<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DocumentDB supports limiting the number of results from a query using the <a href=\"https:\/\/msdn.microsoft.com\/library\/bb300906(v=vs.100).aspx\">Take<\/a> operator.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nclient.CreateDocumentQuery(\"\/dbs\/sampleData\/colls\/families\")\n    .Where(f => f.LastName == \"Andersen\")\n    .OrderByDescending(f => f.Address.State)\n    .Take(10);\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">DocumentDB supports\u00a0<a href=\"https:\/\/azure.microsoft.com\/blog\/order-query-results-with-azure-documentdb\/\">string range comparisons<\/a>\u00a0like in relational SQL. This is now supported in LINQ through the\u00a0<a href=\"https:\/\/msdn.microsoft.com\/library\/system.icomparable.compareto(v=vs.110).aspx\">CompareTo<\/a>\u00a0operator.\u00a0 For example, this query retrieves the families with last names string from N-Z.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nclient.CreateDocumentQuery(\"\/dbs\/sampleData\/colls\/families\")\n    .Where(f => f.LastName.CompareTo(\"N\") >= 0);\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The SDK also supports translation from the C#\u00a0<a href=\"https:\/\/msdn.microsoft.com\/library\/ty67wk28.aspx\">conditional (?)<\/a>\u00a0and\u00a0<a href=\"https:\/\/msdn.microsoft.com\/library\/ms173224.aspx\">coalesce operators (??)<\/a>\u00a0into the corresponding DocumentDB operators. This change makes it easy to pass-through auto-generated LINQ expressions from frameworks like ODATA down to DocumentDB.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nclient.CreateDocumentQuery(\"\/dbs\/sampleData\/colls\/families\")\n    .Select(f => f.LastName?? \"Unknown\");\n<\/pre><\/div>\n\n\n<h1 class=\"wp-block-heading\" id=\"next-steps\">Next steps<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Get started with querying DocumentDB by downloading one of the <a href=\"https:\/\/msdn.microsoft.com\/library\/azure\/dn781482.aspx\">supported SDKs<\/a> or through the Azure Portal. If you need any help or have questions or feedback, please reach out to us on the <a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/azure-documentdb\">developer forums on stack overflow<\/a> or schedule a 1:1 chat with the DocumentDB engineering team.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stay up-to-date on the latest DocumentDB news and features by following us on Twitter <a href=\"https:\/\/twitter.com\/DocumentDB\">@DocumentDB<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We\u2019re pleased to announce a number of improvements in Azure DocumentDB. Read on to learn more.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","footnotes":"","msx_community_cta_settings":[]},"categories":[1473,1485],"tags":[],"audience":[3057,3055,3053,3056],"content-type":[],"product":[1538],"tech-community":[],"topic":[],"coauthors":[97],"class_list":["post-5011","post","type-post","status-publish","format-standard","hentry","category-databases","category-internet-of-things","audience-data-professionals","audience-developers","audience-it-decision-makers","audience-it-implementors","product-azure-cosmos-db","review-flag-1680286580-543","review-flag-1680286581-295","review-flag-1-1680286581-825","review-flag-2-1680286581-601","review-flag-5-1680286581-950","review-flag-never-1680286580-606","review-flag-new-1680286579-546"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>DocumentDB paging support with TOP and more query improvements | Microsoft Azure Blog<\/title>\n<meta name=\"description\" content=\"We\u2019re pleased to announce a number of improvements in Azure DocumentDB. Read on to learn more.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DocumentDB paging support with TOP and more query improvements | Microsoft Azure Blog\" \/>\n<meta property=\"og:description\" content=\"We\u2019re pleased to announce a number of improvements in Azure DocumentDB. Read on to learn more.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Azure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/microsoftazure\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-15T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-18T15:51:05+00:00\" \/>\n<meta name=\"author\" content=\"Microsoft Azure\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@azure\" \/>\n<meta name=\"twitter:site\" content=\"@azure\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Azure\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/\"},\"author\":[{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/microsoft-azure\/\",\"@type\":\"Person\",\"@name\":\"Microsoft Azure\"}],\"headline\":\"DocumentDB paging support with TOP and more query improvements\",\"datePublished\":\"2015-12-15T00:00:00+00:00\",\"dateModified\":\"2025-09-18T15:51:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/\"},\"wordCount\":949,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"articleSection\":[\"Databases\",\"Internet of things\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/\",\"name\":\"DocumentDB paging support with TOP and more query improvements | Microsoft Azure Blog\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\"},\"datePublished\":\"2015-12-15T00:00:00+00:00\",\"dateModified\":\"2025-09-18T15:51:05+00:00\",\"description\":\"We\u2019re pleased to announce a number of improvements in Azure DocumentDB. Read on to learn more.\",\"breadcrumb\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog home\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Databases\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/databases\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"DocumentDB paging support with TOP and more query improvements\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"name\":\"Microsoft Azure Blog\",\"description\":\"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.\",\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\",\"name\":\"Microsoft Azure Blog\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"width\":512,\"height\":512,\"caption\":\"Microsoft Azure Blog\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/microsoftazure\",\"https:\/\/x.com\/azure\",\"https:\/\/www.instagram.com\/microsoftdeveloper\/\",\"https:\/\/www.linkedin.com\/company\/16188386\",\"https:\/\/www.youtube.com\/user\/windowsazure\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117\",\"name\":\"shakir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"caption\":\"shakir\"},\"sameAs\":[\"https:\/\/azure.microsoft.com\"],\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DocumentDB paging support with TOP and more query improvements | Microsoft Azure Blog","description":"We\u2019re pleased to announce a number of improvements in Azure DocumentDB. Read on to learn more.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/","og_locale":"en_US","og_type":"article","og_title":"DocumentDB paging support with TOP and more query improvements | Microsoft Azure Blog","og_description":"We\u2019re pleased to announce a number of improvements in Azure DocumentDB. Read on to learn more.","og_url":"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/","og_site_name":"Microsoft Azure Blog","article_publisher":"https:\/\/www.facebook.com\/microsoftazure","article_published_time":"2015-12-15T00:00:00+00:00","article_modified_time":"2025-09-18T15:51:05+00:00","author":"Microsoft Azure","twitter_card":"summary_large_image","twitter_creator":"@azure","twitter_site":"@azure","twitter_misc":{"Written by":"Microsoft Azure","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/#article","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/"},"author":[{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/microsoft-azure\/","@type":"Person","@name":"Microsoft Azure"}],"headline":"DocumentDB paging support with TOP and more query improvements","datePublished":"2015-12-15T00:00:00+00:00","dateModified":"2025-09-18T15:51:05+00:00","mainEntityOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/"},"wordCount":949,"commentCount":0,"publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"articleSection":["Databases","Internet of things"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/","name":"DocumentDB paging support with TOP and more query improvements | Microsoft Azure Blog","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website"},"datePublished":"2015-12-15T00:00:00+00:00","dateModified":"2025-09-18T15:51:05+00:00","description":"We\u2019re pleased to announce a number of improvements in Azure DocumentDB. Read on to learn more.","breadcrumb":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/documentdb-paging-support-with-top-and-more-query-improvements\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog home","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/"},{"@type":"ListItem","position":2,"name":"Databases","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/databases\/"},{"@type":"ListItem","position":3,"name":"DocumentDB paging support with TOP and more query improvements"}]},{"@type":"WebSite","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","name":"Microsoft Azure Blog","description":"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.","publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization","name":"Microsoft Azure Blog","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","width":512,"height":512,"caption":"Microsoft Azure Blog"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/microsoftazure","https:\/\/x.com\/azure","https:\/\/www.instagram.com\/microsoftdeveloper\/","https:\/\/www.linkedin.com\/company\/16188386","https:\/\/www.youtube.com\/user\/windowsazure"]},{"@type":"Person","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117","name":"shakir","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4","url":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","caption":"shakir"},"sameAs":["https:\/\/azure.microsoft.com"],"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/"}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Azure Blog","distributor_original_site_url":"https:\/\/azure.microsoft.com\/en-us\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/5011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/comments?post=5011"}],"version-history":[{"count":1,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/5011\/revisions"}],"predecessor-version":[{"id":46621,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/5011\/revisions\/46621"}],"wp:attachment":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/media?parent=5011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/categories?post=5011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tags?post=5011"},{"taxonomy":"audience","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/audience?post=5011"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/content-type?post=5011"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/product?post=5011"},{"taxonomy":"tech-community","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tech-community?post=5011"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/topic?post=5011"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/coauthors?post=5011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}