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.

Azure Synapse Link: Features related to Azure Cosmos DBanalytical store and Azure Synapse Analytics run-time support

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. Support Gremlin APIs on Cosmos DB Emulator

    The Cosmos DB Emulator currently does not support the Gremlin API. So at the moment it is not possible to test against the emulator using the Gremlin Console (http://tinkerpop.apache.org/docs/3.2.5/tutorials/the-gremlin-console/)

    183 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    10 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  2. Allow fetching results without deserialization in .NET SDK

    It would be highly useful if we would have a way to get returned results without JSON deserialization in .NET SDK.

    Consider this very typical scenario - I have a Web API exposing HTTP REST services to AngularJS frontend. When I fetch document - or projection - from DocumentDB, I want to pass it on to AngularJS without it going through JSON.NET twice, first to deserialize into POCO DTO object (or dynamic), and then again back to JSON data for transmitting.

    So, it would be a lot easier on the CPU and memory if I could just get the…

    173 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 →

    This is already supported in the SDK. When you read results as Document, the deserialization is late bound (until when you cast to a class, or assign). You can read the stream directly from the object using Document.LoadFrom(Stream) and avoid the double deserialization penalty.

  3. 3 Collections per capacity unit is way too small

    I wanted to develop an application using DocumentDB instead of Mongo, but I would need 30-40 collections. The application will have very light usage, but I can't put everything in 3 collections!

    172 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    26 comments  ·  Flag idea as inappropriate…  ·  Admin →
    completed  ·  DocumentDB Team responded

    There is no concept of a Capacity Unit any longer. This was during the service preview.

    There is still work to be done about adding a “logical” collection to allow for better tenant isolation multi-tenant applications, or to store documents of a type in a logical “container”.

    We’re thinking about how to best handle this

  4. Support LINQ ANY or WHERE for child object collections

    Example trying to query Sales

    var querySales = DocumentDb.Client.CreateDocumentQuery<Sale>(collectionLink)

                  .Where(q =&gt; q.Type == &quot;Sale&quot; &amp;&amp; q.Stage &lt;= 99 &amp;&amp; q.InvolvedParties.Any(qq =&gt; qq.Id == userId))
    

    Buy ANY not supported

    Also tried
    .Where(q => q.Type == "Sale" && q.Stage <= 99 && q.InvolvedParties.Where(qq => qq.Id == advisorUserId).Count() > 0)

    get WHERE not supported

    Really want the DB to perform the search as a lot of results will come back.

    sample data:
    {
    "id": "af10eebf-b0b6-49d5-8db5-96f54c4985d2",
    "Type": "Sale",
    "GroupId": 1,
    "InvolvedParties": [

    {
    
    &quot;Id&quot;: &quot;344595a3-4e73-4bd5-9988-849858f045f1&quot;,
    &quot;PartyType&quot;: 0,
    &quot;Name&quot;: &quot;test user&quot;
    }

    ],

    157 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    7 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  5. Allow creating collection with less then 400 RU

    For applications with small user base, 400 RU isn't really necessary and this limitation increases cost of the service above acceptable levels.

    153 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 →
  6. support COUNT of a query on a partitioned collection

    db.collection.count() works just find but when attempting to count a filtered down collection db.collection.find({query...}).count() results in an Operation Failure that says 'query in command must target a single shard key' but need to be able to do counts across multiple partitions

    151 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    29 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  7. Order By Null Handling

    Currently if you do an order by on a nullable value, the documents are not returned at all. Please add functionality similiar to Application Insights where you can specify if the documents with the null value appear at the beginning or end of the sort.

    129 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  8. ^ (StartsWith) operator doesn't work using $in operator

    In mongo you can use javascript patterns for regex queries using $in operator, sth like: find({categories: {$in: [/^shoes/,/^boots/]}}), but it seems that operator ^ isn't working in cosmsoDB

    126 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  9. Support MSI (Managed Service Identity) direct access to Cosmos DB

    Currently the guidance on connecting to Cosmos DB using MSI is to query KeyVault for the Master Key and use that to create the DocumentClient. This convoluted approach, and having to code support for key rotation could be avoided by supporting MSI to Cosmos DB directly.

    125 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    9 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  10. Support documents larger than 256K

    Today DocumentDb only supports documents up to 256KB. 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.

    109 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 →
    completed  ·  DocumentDB Team responded

    We’ve increased the maximum document size from 256Kb to 512Kb.

    Thanks,
    Han Wong
    Program Manager
    Azure DocumentDB

  11. Develop more tooling

    For a product as great as DocumentDB there should be better tooling. Think SQL Server Management Studio plug-in or Mongovue or a cool web management portal

    105 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Flag idea as inappropriate…  ·  Admin →
    completed  ·  DocumentDB Team responded

    This is an on-going activity.

    We continually add functionality to the Azure Portal at http://portal.azure.com. There is now a Query, Document, and Scripts Explorer.

    We have added capability in the new Cloud Explorer that ships with the latest Azure SDK for Visual Studio 2015. As with the management portal, we will continue to enhance this by adding new functionality.

    Thanks,
    Ryan

  12. Mongo DB API - cursor.sort() does not return sorted result

    When I use find() with sort(), the results are not sorted correctly. The order of the returned items do change, but in a strange order. (MongoDB returns correctly sorted result with the same query). Is this a CosmosDB bug?

    Here are the queries and results. The queries are executed with a Mongo DB shell connected to a Cosmos DB instance. You can see that the header_timestamp order are incorrect.

    > db.datastore.find({}, {id: 1, headertimestamp: 1})

    { "id" : "object-bbfg0pritvunrk0bi170", "headertimestamp" : NumberLong(1) }
    { "id" : "object-bbfg0rjitvunrk0bi180", "headertimestamp" : NumberLong(3) }
    { "id"

    103 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  13. Document DB in vNet

    Any roadmap to make documentDB available on vNet

    102 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. .NET SDK support on Mono + Linux/Mac

    .NET SDK should work out of the box with Mono on Linux / Mac

    99 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 →
  15. Provide for Upsert

    Would like the ability to do an Upsert in a single statement, provided I supply a valid etag or something that aids consistency validation.

    97 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. Create ODBC driver for DocumentDB

    Because you're supporting SQL in DocumentDB, a standard for interacting with a database that supports SQL is ODBC. Would increase interoperability with any ODBC consumer (e.g. a variety of Microsoft and non-Microsoft products). There already exists such a driver for MongoDB., Cassandra, HBase, etc.

    95 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 →
  17. Resolve the defect with $elemMatch used in conjunction with $OR in MongoDB API

    Currently, MongoDB API incorrectly evaluates '$OR' when used in conjunction with '$elemMatch'. e.g. take 2 records like this:

    / 1 /
    {

    &quot;_id&quot; : ObjectId(&quot;5b4f8fc167bd4749b84cebac&quot;),
    
    &quot;name&quot; : &quot;Ron Swanson&quot;,
    &quot;gender&quot; : &quot;M&quot;

    }

    / 2 /
    {

    &quot;_id&quot; : ObjectId(&quot;5b4f8fea67bd4749b84cebae&quot;),
    
    &quot;name&quot; : &quot;Hunter S. Thompson&quot;,
    &quot;gender&quot; : &quot;M&quot;,
    &quot;Likes&quot; : [
    {
    &quot;roadtrips&quot; : &quot;yes&quot;
    },
    {
    &quot;applepie&quot; : &quot;yes&quot;
    },
    {
    &quot;politicians&quot; : &quot;no&quot;
    }
    ]

    }

    and run this query:

    db.myCollection.find(

    {
    
    &quot;$or&quot;: [
    {&quot;gender&quot;:&quot;M&quot;},
    {&quot;Likes&quot;: {&quot;$elemMatch&quot;: {&quot;applepie&quot;: &quot;yes&quot;}}}

    ]

    }

    )

    the cosmosDB with MongoAPI will only return the second one, effectively treating what should be an…

    94 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  18. IN Operator

    Add support for the IN operator, similar to SQL.

    SELECT * FROM Customer WHERE CityId IN (1,2,3)

    Because of the limit of the number of ORs it is not possible to use OR as an alternative.

    MongoDB's IN support: http://docs.mongodb.org/manual/reference/operator/query/in/

    93 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  Flag idea as inappropriate…  ·  Admin →
  19. Increase 10GB limit on non partitioned collection

    Give there is a hard 10GB limit on a non-partitioned collection, and partition collections are much more expensive, with no auto-upgrade and code changes required to migrate to partitions, a larger size limit on non partitioned collection is much needed.

    85 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  20. Deploy Stored Procedures from Source Control

    It would be great if we could deploy sprocs from visualstudio.com as we can with Azure Functions or Azure Web Sites.

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

Feedback and Knowledge Base