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. Provide load balancing option across regions at the server level

    I have a read replica set up in a different region/same country. Since I am paying full price for that region I want to be able to use it to carry some of the query load. Using the node.js SDK, although preferred location and endpoint discovery is set as documented all queries get sent only to the primary region. Regardless, it should not be left up to client side applications to manage load balancing - that might be ok if you only have 1 application. Also, we might want to use applications that (shock horror) are not coded ourselves- Power…

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

    @Ian.

    With regards to secondary regions having different RU/s we do not have this on our road map at this time. There is another User Voice items which have this suggestion, Please feel free to vote that item up.

    @Nick.

    For scenario 1. Same answer.

    For scenario 2. Typically, just putting the front-end closer to users is not something we see help with application latency where they are backed by a database as the app still needs to call the database which is still separated by some distance.

    With regards to knowing which region to point to I would suggest conducting tests to see which regions provide the best latency and include this as the preferred regions for each regional deployment.

    Thank you both for your suggestion and comments.

  2. Gremlin console in Azure portal

    Currently the option to do search queries in azure portal with gremlin is very slow. To avoid the setup of a local Gremlin console, it would be an improvement to have a gremlin console integrated into the portal. No need to specify connection string and keys, just ready to use and fast.

    Would same time to each developer and be a frictionless no setup, just ready to use.

    11 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 →
  3. Better handling of "request limit too large"

    Here (https://docs.microsoft.com/en-us/azure/cosmos-db/performance-tips) you can see that when you have exceeded your RU/s quota, Cosmos DB will respond with HTTP Status 429 with an HTTP header x-ms-retry-after-ms telling you when you can make the next request. It also says that the request will be retried automatically, if you use the SQL API.

    For the MongoDB API, requests will not be retried automatically and there is nothing telling the user how long to wait before retrying. Instead you have to catch a MongoCommandException, look at the Code property for 16500 and guess when to retry,

    I'd like the same support…

    225 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    8 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  4. Allow me to create global read replicas with different partition keys

    There is really no way to come up with a single partition key for my graph database to satisfy all queries. Some queries would benefit from a different partition key, so why not let people create copies of their whole graphs with different partition keys and give them a way to intelligently route queries to the correct server?

    one write region with partition key A
    multiple read regions with partition key A
    multiple read regions with partition key B
    multiple read regions with partition key C
    ...

    In other words, there would still be a single write region but multiple…

    13 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. Support $GraphLookup

    $graphLookup is not implemented in Mongo API
    If you try to do this with Mongo API (or Cosmos DB) + Gremlin you need to know what the relationships are upfront. Need DYNAMIC joins 
    which MongoDB supports today.

    47 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  6. Support TTL that is fixed (not relative to last modified timestamp)

    The TTL function is great, but it would be very useful to have a method of ejecting a document at an exact time after it was created NOT modified.

    With the GDPR act coming into play very soon, having a datastore that has the potential to eject customer data at a specific time is very desirable because it prevents us having to roll our own deletion mechanisms.

    Please allow the the option of the TTL to be a fixed point in time and not be updated every time the document is modified.

    Thanks

    10 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  7. Linq provider should respect JsonSerializerSettings ContractResolvers

    JsonSerializerSettings are now supported when creating the client, as per https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/6422364-allow-me-to-set-jsonserializersettings

    However, when using for example a CamelCasePropertyNamesContractResolver to store the data, the linq queries will fail if the properties on the POCO classes are Pascal case.

    430 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 →
  8. Support lambda steps

    Lambda steps (i.e. steps that take arbitrary groovy-functions as arguments) are currently not supported. We plan to migrate to CosmosDB but have a few traversals that contain lambdas.

    10 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 →
  9. EventGrid publisher for CosmosDB

    Instead of, or in addition to, the existing ChangeFeed please publish changes to Event Grid.

    This shud be mngt ops like DB create, collection create etc.
    AND changes to documents, including deletes.

    136 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. Cosmos DB Linux ODBC Driver

    Would be great to have the ODBC driver for linux variants. We were looking to port a MongoDB application and require some sort of aggregation features on some linux machines.

    7 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 →
  11. Add support for "Search text" ($text Operator)

    Support for "Mongo Search Text" (https://docs.mongodb.com/manual/text-search/). Example of use:

    db.stores.find( { $text: { $search: "java coffee shop" } } )

    89 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  12. Support for schemas (full, mixed and none)

    Support schema-full and schema-mixed modes like OrientDB. This way one can design a graph with vertex and edge classes. This is extremely useful when modelling known domains and removes all burden to do this in code.

    21 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 →
  13. add spatial support to Graph API

    Enable the same support for spatial queries that exists for DocumentDb for graph elements. Similar to Neo4j Spatial.

    34 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 →
  14. Add ability to rename databases and collections

    It should be possible to rename databases and collections.

    This feature is universal in all if not the vast majority of database products.

    Lack of ability to rename anything makes it very hard for us to manage releases if we are adding new data. Currently, we have to create a copy of the existing database (which is a feat in itself, since this again is not core functionality), make the change there, and then re-point the website to the updated database. All this time, we are incurring extra costs and inconvenience.

    Renaming things also allows us to correct typos, which…

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

    The ability to rename databases and collections is not currently something that is in our road map.

    Currently the way to accomplish this task in Cosmos DB is to create a new collection with the changed name then use bulk exec or change feed to populate it.

    Thanks for your request and input on this. We may consider this for a future planning cycle.

    thanks.

  15. Support Cypher as a query language for Graph data

    Add Cyhper (see http://www.opencypher.org/) as a language to query graph databases. Cypher is a human readable query languages to easily access a graph database.

    514 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 →
  16. Support documents up to 16mb

    It's not possible to migrate documents greater than 2mb, please consider increase document size up to 16mb

    122 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  17. Implement a graphql provider

    graphql {http://graphql.org/} is becoming increasingly adopted by front end frameworks (including mobile) for querying backend / API data.

    Rather than having to translate each graphql query into a DocumentDB client call it would be optimal and very powerful to issue the query directly.

    It would also provide enhanced query abilities over the existing REST approach.

    307 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    11 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  18. Execute read-only stored procedures on secondary replica

    I have a many-to-many scenario close to the post below:
    https://feedback.azure.com/forums/263030-documentdb/suggestions/6611247-support-cross-document-joins
    I have multiple entities, and the relationships between them are saved as documents and can't be denormalized.
    Instead of doing multiple queries against the DB, I'd like to wrap it in a stored procedure to save round-trip time.
    However, current stored procedures can only execute on primary replica, so it would be slow if the users are from another region.
    Is that possible to define some read-only stored procedures so that it can be executed in read regions?

    28 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  19. Like upsert, add a get or add function

    like ConcurrentDictionary, there is a GetOrAdd function,

    I frequently find my self doing the following
    1. Check if Document exists
    2. If not, Add document

    Since this is a non-atomic action, today I have to write stored procedures to do this safely.

    possible prototypes

    GetOrAdd(string id, DOC doc)
    GetOrAdd(Expression<Func<DOC, bool>> where, DOC doc)

    8 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  20. Built-in OAuth support

    Support OAuth to make it easy for mobile clients to securely talk directly to DocumentDB without a middle tier or a separate resource token broker.

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

Feedback and Knowledge Base