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.

    48 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. 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 →
  3. Support Math functions in the graph

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

    34 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 →
  4. 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 →
  5. 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 →
  6. 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 →
  7. 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 →
  • Don't see your idea?

Feedback and Knowledge Base