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. [Gremlin] Paging Support

    Please add paging support for Cosmos Graph DB via the Gremlin API. Traversing the whole graph for a large set of vertices can be very expensive. Paging would allow better efficiency when targeting a subset of a large set of vertices.

    44 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  1 comment  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  2. sample

    $sample should return an actual random sample.

    Right now it returns the top/first N items. This is preventing us from porting code over the Cosmos DB.

    1 vote
    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 →
  3. slice projection not working mongodb

    User.findById({ _id: req.params.id }).slice('blacklistGroup', [0, 2]).then((res) => { outputs slice must be an integer error. More details here https://stackoverflow.com/q/61290693/2683814

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  4. With Emulator, ReadDocumentAsync() doesn't distinguish between missing document and missing collection

    Our service needs to be able to distinguish between a missing document and a missing collection. With the Cosmos DB Emulator and the .net SDK, DocumentClient.ReadDocumentAsync() throws an identical exception in either case. The exception message starts with 'Message: {"Errors":["Resource Not Found"]}'. Conversely, when using the Cosmos DB service, if a document doesn't exist, the exception message starts with 'Entity with the specified id does not exist in the system.'

    While it's possible to work around this by writing a query for the document instead of using ReadDocumentAsync(), I don't really like having to change a basic function in the…

    2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Emulator  ·  Flag idea as inappropriate…  ·  Admin →
  5. cosmosdb graph make input query multiline

    Please replace the single line textbox of the cosmosdb graph data explorer query filter to a multiline textbox! As of today it is impossible to use even with the simplest gremlin queries.

    13 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Portal  ·  Flag idea as inappropriate…  ·  Admin →
  6. Allow saving queries to disk in Azure portal

    There is a nice feature in the Azure portal to open queries from disk but the workflow is rather awkward because you can't then save the changes back to disk.

    I'd like to be able to edit my query files and save them directly from the portal.

    I realise you can save them to another Cosmos DB but I don't want the cost of another database in each environment and I want to save my personal queries.

    2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Portal  ·  Flag idea as inappropriate…  ·  Admin →
  7. TTL default value needs to be blank for mishandling

    When TTL selected "On", default value in the text box should be blank to prevent from user's mishandling to unintentionally delete data.
    I did it and had deleted data.. So I strongly request this.
    I think little tweak can achieve my request.

    18 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Portal  ·  Flag idea as inappropriate…  ·  Admin →
  8. Tail() Gremlin step support

    Create an empty graph and add the following with partition as a.

    g.addV('person').property('a','1').property('name','person 1').property('number',1)
    g.addV('person').property('a','1').property('name','person 2').property('number',2)
    g.addV('person').property('a','1').property('name','person 3').property('number',3)

    Then run the following:
    g.V().order().by('number')
    returns: person 1, person 2, person 3
    g.V().order().by('number').tail(1)
    returns: person 1

    ​This is not expected result as it should return person 3. But when the property is used to run the same thing or use the query with fold()/unfold() before .tail()

    g.V().order().by('number').properties('name')
    returns: person 1, person 2, person 3
    g.V().order().by('number').properties('name').tail(1)
    returns: person 3

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  9. Partition keys should propagate to newly created vertices

    Assume a pre-existing graph whose vertices are on different partitions (and thus have different partition keys).

    Now, consider adding new vertices through new edges in bulk through the Gremlin API, e.g. like this:

    g.V().addE('l').to(__.addV('newVertex').property('PartitionKey', 'p')

    This would work just fine but it would possibly place the source and sink vertices into different partitions. If we would want them to remain on the same partition, we're currently lost with CosmosDB.

    The Tinkerpop API allows the property-step to specify a traversal, so the following query is actually possible in the Tinkerpop reference implementation and would solve the issue:

    g.V().as('source').addE('l').to(.addV('newVertex').property('PartitionKey', .select('source').id())

    This…

    2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  10. Please add the none step.

    When we create or update vertices and edges, we don't need the results from the traversal. Having the results filtered out server-side saves resources.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  11. Multi-line Graph/Gremlin query textbox in the portal

    In the Azure Portal, the graph query text box allows pasting of multi-line queries, but if the query is longer than the query textbox, you have to scroll horizontally (using arrow keys). I frequently debug queries using this interface, but I usually end up having a separate text editor open so I can view the entire query, copying/pasting back and forth.

    Allowing for at least a few lines of text with a vertical scrollbar would be great (like we have now for SQL queries). Optional word-wrap would make it even better.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Portal  ·  Flag idea as inappropriate…  ·  Admin →
  12. 1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  13. Support Math functions in the graph

    simple arthimatic (like computing %s) have to be done after extracting the data. pl support math step

    31 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  14. Azure mongodb timeout after 30 mins

    Currently azure closes mongodb connection after 30 mins and doesn't inform the webapp. So after 30 mins app uses same connection it gets error.
    See details in

    https://stackoverflow.com/questions/48464455/connection-to-cosmosdb-through-mongo-api-fails-after-idle

    Any plan to fix this or work around ?

    24 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 →
  15. Managing local account and authentication for accessing database and collection

    We are using Cosmos DB with Mongo API .We are unable to restrict the user to collection or database level. The only option available is read write keys and read only keys which works on the DB account level.

    7 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Security  ·  Flag idea as inappropriate…  ·  Admin →
  16. Support strategies on graph traversals

    Currently, the graph traversal in Cosmos DB graph (usually referenced by 'g') does not support the 'withStrategies'-method that is normally part of a Tinkerpop implementation. 'withStrategies' allows e.g to enhance the traversal with custom vertex- and edge-filtering on every step (by a SubgraphStrategy).

    46 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  17. Change feed support for SQL API Python SDK

    See issue https://github.com/MicrosoftDocs/azure-docs/issues/5251.

    Customer says "I am looking for python code example to listen to change feed and process each item. Pointer to any relevant code would be helpful."

    6 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SDK  ·  Flag idea as inappropriate…  ·  Admin →
  18. Compress stored data

    Please compress data in place for more efficient use of storage.

    For example, I recently exported the entire dataset from a collection and gathered the following stats:

    DocumentDB Data Storage: 627 MiB (including hidden fields and other overhead I assume, but not Indexes)
    Exported JSON: 461.72 MiB
    Compressed JSON: 47MiB

    So potentially a 10x saving in data storage size.

    75 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  19. Increase resource token validity limit (or) Provide authentication

    There is a user in a database. I would like to give the user, permission to the whole database resource for the lifetime or few months. So i would create a permission for the user for the database resource and use the resource token in this scenario. But my resource token expires in 5 hrs. So it would be helpful if token validity is increased .

    This feature may end up similar to authentication in other relational databases where the resource token may act as the username and password. The best approach can be decided either to have authentication (or)…

    165 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  20. add DocumentDB to the "azure stack"

    Azure Stack is a great Microsoft vision to allow running Azure applications on premise...
    but DocumentDB support is mandatory (unless Microsoft want to push MongoDB version 3)

    130 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
← Previous 1
  • Don't see your idea?

Feedback and Knowledge Base