Azure Cosmos DB

Have feedback for Azure Cosmos DB product? Submit your idea here or upvote other ideas. All feedback is monitored and reviewed by the Azure Cosmos DB team. 

This site is for feature suggestions only. For technical questions or issues, please submit them to StackOverflow,where we and the community can better help you.

Please use the following categories when submitting your idea.

SQL API: Query language features, syntax using SQL API, indexing, any other core features in Azure Cosmos DB.

Gremlin API: Graph features and capabilities using Gremlin API.

Cassandra API: Features and capabilities using Cassandra API.

MongoDB API: Features and capabilities using MongoDB API.

Table API: Features and capabilities using Table API.

Etcd API: Features related to using etcd as a configuration store for Kubernetes.

Built-in Apache Spark: Features related to built-in Apache Spark in Azure Cosmos DB.

Built-in Notebooks: Features related to built-in Notebooks in Azure Cosmos DB.

SDK: Features related to Azure Cosmos DB SDKs for SQL API.

Change Feed: Features related to Change Feed.

Management: All management features, backup/restore,monitoring, ARM, PowerShell and CLI.

Portal: All features for Azure Portal and Cosmos DB Explorer.

Emulator: Features related to the Azure Cosmos Emulator.

Other: Features not related to any other category.

Security:
Authentication, authorization,permissions and encryption features.

Monitoring:
Metrics, monitoring, alerts,and diagnostics features.

Server-side: Stored procedures, Triggers,and User-Defined Functions.
  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. I want atomic counter

    I want a counter is a valid atomic in the collection. Such as use with automatic sequential number.

    556 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    16 comments  ·  Flag idea as inappropriate…  ·  Admin →

    We now have support for generating a globally unique Int64 ID with the DocumentID() function.

    The function returns a unique number that identifies the document in a collection. The number is extracted from the document’s _rid field. The number is 64 bit long.

    Syntax:
    DOCUMENTID()

    Example:
    SELECT f.id, DOCUMENTID
    FROM Families f

    However, for an Identity column equivalent for this we are declining this due to scalability constraints. Hopefully this will meet your needs.

    Thanks for your suggestion.

  2. 552 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    25 comments  ·  Flag idea as inappropriate…  ·  Admin →
  3. Add "elastic pool"

    Today at BUILD we saw Azure SQL DB announce elastic pools. This is awesome and what I hoped capacity units would be.

    This is definitely needed if we're going to build SaaS apps with DocumentDB

    1) assign collections to a pool of resources and have resources allocated dynamically to collections as needed based on demand. Hot collections just get more, idle collections get less

    2) elastic query to easily write one query against all collections in a pool

    3) jobs to be able to manage sprocs etc. across collections easily

    496 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. More granular pricing for storage/performance

    Current DocumentDB pricing seems to bundle storage and performance. If you want to get 100GB of storage, you need to purchase 10 compute units even if you don't need the additional performance.

    Please offer more pricing options here to accommodate various needs. Just like there are different performance tiers for Azure SQL and different types of VMs (some with high memory, some with high CPU).

    470 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    23 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. Inheritance and Ploymorphism

    Currently, it does not seem like DocumentDB stores the original CLR Type.

    For inheritance and polymorphic scenario, you don't get the expected results.

    Also, Linq's OfType<>() support would be nice.

    418 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  6. Cosmos DB BulkExecutor for .NET Core

    I would like Azure Cosmos DB BulkExecutor library for .NET Core compatible version.

    Recent application often uses Microsoft.Azure.DocumentDB.Core package, so the need for the .NET Core version is high.

    389 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    9 comments  ·  SDK  ·  Flag idea as inappropriate…  ·  Admin →
  7. .Net Core support!

    Also seen here:
    https://github.com/Azure/azure-documentdb-dotnet/issues/60

    This is a blocker for us :(

    Let us know!

    365 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    7 comments  ·  Flag idea as inappropriate…  ·  Admin →

    We are pleased to announce the public preview of the DocumentDB .NET Core SDK (https://azure.microsoft.com/en-us/blog/documentdb-emulator-for-local-development-and-dotnet-core-support/), which lets you build fast, cross-platform .NET web applications and services on Windows, MacOS and Linux.

    Nuget package: https://www.nuget.org/packages/Microsoft.Azure.DocumentDB.Core

    Please let us know if you have any feedback or questions.

    Thank you,
    Aravind Ramachandran
    Azure DocumentDB

  8. It should be possible to remove a document by ID (without self-links)

    I really don't understand how is it possible that DocumentDB doesn't allow you to delete a document by ID. You have to query for it first, then delete it using returned self-link. To me, deleting an item by ID is absolutely the must and I don't know any other database that cannot do this directly.

    using (var client = new DocumentClient(...))
    {

    // I want to use my ID here instead of self-link
    
    await client.DeleteDocumentAsync(&quot;dbs/1m1FAA==/.....&quot;);

    }

    360 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    11 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. 360 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  10. Active Geo-replication

    The title is self-explanatory. Would be awesome if changes to a DocumentDB in one DC gets automatically propagated to the other ones.

    346 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    12 comments  ·  Flag idea as inappropriate…  ·  Admin →
  11. Changes feed

    One of the more useful features of CouchDB is the _changes feed that allows me to subscribe to changes made in the database via Websockets or HTTP long-polling.

    319 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. OpenSource DocumentDB .NET SDK

    Unlike this thread
    https://feedback.azure.com/forums/263030-documentdb/suggestions/6334154-open-source-documentdb

    We would like to have only the .NET SDK as opensource
    https://github.com/Azure/azure-documentdb-dotnet/issues/128

    I have been programming against docdb with .Net for more than one year now and 80% of my problems come from the .NET SDK. We must be able to step into source code easily and propose pull requests to fix bugs. This will help Microsoft DocDB dev team to speed up corrections and features on this SDK.

    309 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. connection string

    Support for DotNet library constructor of DocumentClient taking "Connection string", not the "Uri endpoint + string authKey"similar to other implementations of DocumentDB, or similar to Azure.Storage

    283 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. Make COUNT() aware of indexes

    Queries with COUNT() or other aggregates are very expensive and all appear to be scan driven vs. index driven.

    I have 50k documents in collection, each has "Type" property with string value. The indexing policy is default.

    The following simple query consumes 615 RUs:
    SELECT VALUE COUNT(1) FROM x WHERE x.Type ='Content'

    The result is 9738 records.

    The query metrics are:
    RetrievedDocumentCount: 9738
    RetrievedDocumentSize: 69506571
    OutputDocumentCount: 1
    OutputDocumentSize: 53
    IndexHitDocumentCount: 0
    IndexHitRatio: 0

    So what we see is that database reads all "Contents" and than counts them. But it's enough to just count the index entries not to read all…

    279 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    10 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  15. Support documents larger than 16KB

    Today DocumentDb only supports documents up to 16KB. If you try to store a larger document you will get an exception.

    We have entities larger than this which we need to store and having to split up these entities into several documents and have some kind of master-document referencing them would be cumbersome.

    I think supporting JSON entities at least 1MB or something like that would be reasonable.

    271 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    9 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. CORS support

    I don't understand why you've released a Rest API and Javascript SDK if DocumentDB doesn't support CORS, if we need a proxy due to this limitation and due to the same-origin policy the Rest API is useless.. do you plan to support CORS?

    Thansk, regards
    Giordano Pellegri

    242 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    8 comments  ·  Flag idea as inappropriate…  ·  Admin →
  17. Add Change Feed support to MongoDB API

    Presently leveraging Azure Functions via Cosmos Change Feed is not an option if you use the MongoDB API. Any immediate plans to implement this?

    239 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  18. Azure DocumentDB Explorer standalone Desktop app for any platform.

    It would be handy if DocumentDB team built Azure DocumentDB Explorer standalone Desktop app for any platform using Electron (http://electron.atom.io/). Just like Storage team did for Storage Explorer: http://storageexplorer.com/

    229 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    9 comments  ·  Flag idea as inappropriate…  ·  Admin →
  19. Add Support for Contains within DocumentDB Query Provider

    Add Support for the Contains Method Call within the DocumentDB Linq Query Provider.

    227 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    9 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. Support sub-query functions like EXISTS, NOT EXISTS

    It would be great to query within document array's without having to join them in the root's FROM-clause.
    (And likely, this also the creates the possibility to implement LINQ support for Any() and All())
    example:
    SELECT author
    FROM author
    WHERE EXISTS

                   (SELECT b 
    
    FROM author.Books b
    WHERE b.YearOfPublishing &lt; 1980)

    Although there are workarounds they all have nasty side effects:
    1: In the following example the join results in non-unique results due to multiple books published before 1980 within single author-document:
    SELECT author

     FROM author
    
    JOIN b IN author.Books

    WHERE b.YearOfPublishing < 1980

    2: In the following example a UDF…

    188 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feedback and Knowledge Base