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. JDBC Support

    Provide a JDBC adapter to allow for multiple out of the box data solutions to connect to DocumentDB, ex TIBCO Business Works, SAS Reporting/BI, and Tableau.

    This would really open up use case possibilities.

    59 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  SDK  ·  Flag idea as inappropriate…  ·  Admin →
  2. Add the ability to delete ALL data in a partition

    In a partitioned collection, it would be useful to have the option delete all data with a given partitionId.

    420 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    12 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  3. 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.

    81 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  4. Make triggers be able to fire from Azure portal

    Triggers in DocumentDB should act like triggers in SQL Server, which means when you update documents from Azure portal, the triggers should be fired as well. Right now, this feature is missing. Triggers only can be fired from application code.

    10 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 →
  5. Official ruby support

    Other document databases support ruby or have robust community support for ruby. Azure DocumentDB has neither. This is a show stopper for ruby shops. We're not going to pick a backend tech with zero official support.

    15 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  SDK  ·  Flag idea as inappropriate…  ·  Admin →
  6. User Defined Document Functions (UDDF)

    Let's say you have some denormalized data:
    { id: '1, title: 'A story, userID: '1000' }
    { id: '2, title:' 'An article', userID: '1001' }
    where the userID field is denormalized into "user" documents.

    Since there are no cross-document joins, you have to loop result sets either in a DocumentDB Procedure or in the client to populate the 'user' data in the above example.

    There are several scenarios where looping result sets in a Procedure is the only viable solution (as opposed to looping on the client). This could be either performance and RU concerns, or simply network latenzy problems.

    3 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 →
  7. Sub-collections for multi-tenant applications

    In a multi tenant environment it is absolutely essential to limit results only to documents that belong to the current tenant. Adding a tenant name property to every document is not good enough because developers must ALWAYS remember to filter queries by that property. If they forget to do that the results can be devastating. It is also not possible to prevent that with tests.

    To use a separate collection for each tenant is too expensive with the current pricing structure.

    Please enable a possibility to add sub-collections that would act as a query boundary. They should also be a…

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

    Thank you for your suggestion. This is not currently on our road map.

    As suggested by others, customers are implementing this pattern using the same container with a partition key per tenant or a synthetic key with the tenant id and one or more other properties.

    Will mark this as unplanned and leave open and will revisit this in future planning cycles.

    Thank you for your suggestion and votes.

  8. Provide Django integration example

    Provide an example of utilizing DocumentDB with Django. Even better would be showing the replacement of the default sqlite db in Django with DocumentDB.

    29 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  SDK  ·  Flag idea as inappropriate…  ·  Admin →
  9. AzureML Reader Module

    Create a Reader module in AzureML that can use DocumentDB as a data source.

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  10. DocumentDB driver/package for R

    There is one for MySQL. Not sure how hard it would be to build one for DocumentDB.

    17 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  SDK  ·  Flag idea as inappropriate…  ·  Admin →
  11. Interactive JavaScript Shell

    It would be great to have a JavaScript shell (either on the Azure site or something we can connect to) to throw code against for testing purposes as well as do single operations.

    11 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Portal  ·  Flag idea as inappropriate…  ·  Admin →
  12. stored procedures & functions in .NET (C#)

    Would be great to have the option to implement stored procedures, functions and triggers in .NET (C#) as well.

    53 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  13. Text search in documentdb with accented characters

    I've searched for an answer to this and can't find it...
    What I need is support for something like a text-analyzer that allows similar accented characters (e.g. àáâãäå) to match their normal latin equivalent.
    So searching for names like "Jose" will return results like "José"

    20 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 →
  14. Transaction support in client SDKs

    it would be useful if documentdb transactions are supported in .net, rather than just storedprocs and triggers.
    using trans = newtrans()
    try
    db.addsomething()
    db.save() //ok
    db.addother()
    db.save() //fail
    catch
    trans.rollback
    end try
    end using

    1,275 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    21 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  15. Add support for single entity retrieval instead of IEnumarable

    Single \ First and so are currently not supported in Document DB

    For example, the following code:

    return client.CreateDocumentQuery<TEntity>(collection.SelfLink).SingleOrDefault(x => x.Id == id);

    causes the error:

    An exception of type 'Microsoft.Azure.Documents.Linq.DocumentQueryException' occurred in Microsoft.Azure.Documents.Client.dll but was not handled in user code

    Additional information: Query expression is invalid, expression return type Entities.Models.Hierarchy is unsupported. Query must evaluate to IEnumerable.

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

    Thank you for your feedback. I have discussed this in more detail with our team.

    You are correct the workaround suggested to use .AsEnumerable().FirstOrDefault(). should not be a recommended work around. This way results in materializing all documents on the client first before getting the 1st document, which is not very efficient and the exact opposite of what you are trying to achieve.

    Instead we recommend you use Take(1).AsEnumerable() and then .First() or .Single() or .FirstOrDefault() for Single() and First(). Take(1) is translated to SELECT TOP 1 and is processed server-side so more efficient than the previous suggestion and is what you are trying to achieve.

    As to the original ask. The support for these operations can be done, but this work is not prioritized against the other work we want to deliver. I will move this back as unplanned but please note this is on our roadmap.

    Thanks again…

  16. Support for W3C SPARQL as a query language

    SPARQL is a mature W3C standard for querying and updating graph-like data with well defined semantics and rich query capabilities.

    http://en.m.wikipedia.org/wiki/SPARQL

    120 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  17. Support cross-document joins

    I have a many-to-many scenario that requires something like document-to-document joins.

    In my app, users can "like" posts. That's three "tables" or entity sets. One each for users, likes and posts. I can't put the likes inside of either the users or the posts entities as sub-documents because there could be thousands of them. Even with 256KB documents I'd run out of room pretty quickly. I need a way to quickly get the top 100 posts that a user liked (and continue to paginate from there). I also need to go the other way. I need to get all the…

    1,603 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    26 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →

    For applications that require cross document join, please consider the Gremlin API: https://docs.microsoft.com/en-us/azure/cosmos-db/create-graph-dotnet, which has primitives for joins, traversals, and other graph operations.

    We are evaluating expanding the SQL grammar to support graph functionality, which will provide the ability to perform cross-document JOINs. Please upvote this item to help us prioritize this work.

  18. Support Document Versioning

    The ability to generate links to a previous version of a document would be a powerful addition DocumentDB that has many use cases.

    In my case I need a self managed profile document that needs to be referenced at point in time to be tied to an event.

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

    Azure Cosmos DB now provides the ability to access the change feed (https://docs.microsoft.com/en-us/azure/cosmos-db/change-feed). A common pattern to implement eventing patterns is

    1. Store every version/change as a separate item
    2. Read the change feed to merge/consolidate changes and trigger appropriate actions downstream.

    You can also expire old versions using TTL: https://docs.microsoft.com/en-us/azure/cosmos-db/time-to-live

  19. DocumentDB project for Visual studio like existed SQLServer project.

    It's would be valuable if we will can save all collections and related scripts in a new type visual studio project. Now only in a database we can observe UDFs, triggers and so on.

    Another option for a project could be compare .js objects in a collection. With a project we would have a chance to compare already deployed versions of our scripts with current developer version of the script.

    20 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  20. Support the CouchDB replication protocol

    Support the CouchDB replication protocol so that we can sync with PouchDB or Couchbase Lite NoSQL databases on mobile devices for superior online / offline capabilities.

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

Feedback and Knowledge Base