Azure Cosmos DB

Azure Cosmos DB is a globally distributed database service designed to enable you to elastically and independently scale throughput and storage across any number of geographical regions with comprehensive SLAs. You can develop document, key/value, or graph databases with Cosmos DB using a series of popular APIs and programming models.

SQL API:
With the SQL API, Azure Cosmos DB provides rich and familiar SQL query capabilities with consistent low latencies over schema-less JSON data. In this article, we provide an overview of the Azure Cosmos DB’s SQL API, and how to best use the API.

Gremlin API:
Azure Cosmos DB provides the Gremlin API for graph modeling and traversal, along with turn-key global distribution, elastic scaling of storage and throughput, and low latency.

Cassandra API
Azure Cosmos DB supports the Cassandra API. This means that by using existing drivers, your application written for Cassandra can now communicate with Azure Cosmos DB instead of Apache Cassandra/Datastax Enterprise databases, and gain benefits like global distribution and elastic scale.

MongoDB API:
Azure Cosmos DB supports the MongoDB API. This means that by using existing drivers, your application written for MongoDB can now communicate with Cosmos DB instead of MongoDB databases, and gain benefits like global distribution & elastic scale.

Table API:
Azure Cosmos DB provides the Table API for key-value workloads. This provides a premium experience for Azure Table storage with secondary indexes, global distribution, low latency, and dedicated throughput.

How can we improve Azure Cosmos DB?

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Able to view entire graph in the data explorer

    I would like to be able to view my entire graph in the data explorer. At least this should be possible for small graphs. Right now as you traverse, the explorer removes the previous nodes from the graphical view. This is really a pain for small graphs where you want to view the complete the picture. I can understand the new for big graphs but for small ones you should allow displaying the entire graph.

    Also, it should be possible to view edge properties on the data explorer without looking at the tab view.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  2. Support $geonear query in Azure Cosmos DB Mongo API

    I want to transition my application to use Azure Cosmos DB. It is currently using MongoDB with the latest Mongo C# Driver.

    Most of the functionality is working with just updating the connection string to point to the Azure Cosmos DB.

    However some of the major functionality in my application makes use of MongoDB geonear functionality with code as below:

    public IEnumerable<Tuple<Location, double>> GeoNear(StagedLocation stagedLocation, int matchRadius)
    {
    var geoPoint = new BsonDocument
    {
    {"type","Point"},
    {"coordinates",new BsonArray(new []{ stagedLocation.Address.Longitude.Value, stagedLocation.Address.Latitude.Value })}
    };

    var geoNearOptions = new BsonDocument
    {
    {"near", geoPoint},
    {"spherical", true },
    {"limit", 20},
    {"distanceField", "Distance"},
    {"maxDistance", Convert.ToDouble(matchRadius)},
    };

    42 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  3. Allow STRING_SPLIT or .split() functionality in SQL search

    Including STRING_SPLIT or .split() functionality when using SQL queries to search a collection to allow for whole word searching within phrases as opposed to "contains" where partial words return true.

    EG string = "white paper"
    search = "wh" returns false
    search1 = white" returns true
    search2 = "white " returns false
    search3 = "pap" returns false
    search4 = "paper" returns true

    similar to var splice = string.split(' '), splice.includes("white")

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  4. Support for transactions via Mongo 4.0 API

    Mongo 4.0 incl transactions has been released: https://www.mongodb.com/transactions.
    CosmosDB should support Mongo 4.0 API (including transactions)

    166 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    8 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  5. partialFilterExpression should be supported

    According to MongoDB documentation, partialFilterExpression is supported since version 3.2: https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/

    When querying Azure Cosmos DB server version I receive "3.2.0" so I am expecting partialFilterExpression to be supported.

    Unfortunately I receive: 'partialFilterExpression' is not supported when trying to create an index using partialFilterExpression.

    I have several remarks here:

    1) Can you provide an exhaustive documentation on features that are implemented and those that are not?
    2) Can you please advertise that you do not support MongoDB API entirely?
    3) Is there a way to track current backlog and status of Mongo DB API implementation at Microsoft? Transparency is the…

    13 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  6. CosmosDB Cassandra API should support lightweight transactions in CQL

    Currently, lightweight transactions are not supported by the CosmosDB Cassandra API, but should be.

    29 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Cassandra API  ·  Flag idea as inappropriate…  ·  Admin →
  7. DocumentDB SDK for Node.js should allow agent or maxSockets to be set for outbound requests

    The DocumentDB SDK for Node.js should allow an agent or maxSockets to be set for outbound requests.

    0 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  8. DocumentDB Data Migration Tools needs to handle larger number of operations per batch

    The DocumentDB Data Migration Tool should be able to handle any large amount of operations required in migrating data.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. Need way to create collections via the Mongo DB API with a specified RU throughput

    Developers using the MongoDB API should be able to programmatically create collections of a given RU throughput, similar to the capability that the DocumentDB API already provides.

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  10. Documentation needed for DocumentDB and MongoDB API handling of CosmosDB throttling

    Documentation describing the difference in how DocumentDB and MongoDB's APIs handle Cosmos DB's throttling issues should be available, with recommendations on how to have the MongoDB API retry to work with the throttling errors.

    7 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  11. CosmosDB Graph API should support array types inside Gremlin properties

    Currently, the CosmosDB Graph API does not support array types inside of Gremlin properties. This forces users to rebuild their graph models to match what the Graph API requires. The CosmosDB Graph API should support array types inside of Gremlin properties.

    25 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  12. 13 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  13. Table Strorage JAVA SDK Performance Tuning

    Table Storage JAVA SDK does not provide concurrency option for any of its operation. We are getting TPS of around 500 for table insert queries but it is also because we have designed our data model such that.
    Async functionality is available for Table Storage C sharp SDK but not for JAVA SDK.
    It would be good if there is concurrency option for Table Storage Java SDK.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Table API  ·  Flag idea as inappropriate…  ·  Admin →
  14. Update documentation on enabling Gremlin queries on HDInsight via CosmosDB connector

    The documentation on how to enable Gremlin queries on HDInsight via the CosmosDB Spark connector should be brought up-to-date.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  15. Azure cosmos DB: Mongo API with Mongo scala driver, cursor support

    When using mongo scala driver to query a collection, I used the process as below:
    - create a client;
    - get a database;
    - get a collection;
    - have mutiple `find` to query the collection;

    However, those `find` seems to have conflicts between each other since they might return either `cursor *** is not found on server...` or wrong value from the db. It's weird since the scala driver is async/non-blocking and multiple queries should be fine.

    It should be the issue of no cursor support on the cosmosDB side, so I wonder whether we can have this feature.

    Thanks.

    7 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  16. 2D geometry support

    Although some users are excited about using CosmosDB, they are blocked from adopting it if their systems work with 2D geometry, which CosmosDB does not support. CosmosDB should support 2D geometry.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  17. CosmosDB, Mongo API, Delete Many with Partition Key configured

    We have an IoT based solution and archive old data to blob storage. Our data is moved to archive using the shard key. Removing the data once archived is a pain and slow as each individual document has to be deleted rather than using DeleteMany(x=>x.shardId == id).

    More info found at:
    https://stackoverflow.com/questions/51301711/cosmosdb-mongo-api-delete-many-with-partition-key-configured

    37 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  18. Unique indexes on existing collections

    Currently, CosmosDB requires unique indexes to be created before inserting data in an empty collection. MongoRestore creates indexes after importing data, which is incompatible with CosmosDB's flow, and forces the user to create unique indexes manually in order to import data. This is impractical for those who require daily imports on several collections. CosmosDB should be able to import data using MongoRestore's flow, by allowing unique indexes to be created after inserting data.

    7 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  19. Implement a GraphQL Provider (repost)

    (Previous post with the same title was closed without giving the correct solution.)

    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.

    38 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: oidc
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  20. Please don't surprise your customers with Azure Cosmos DB costs...

    1. RU/s are confusing, new and different. Please assume that your current and potential customers are not going to understand how they work for a while.
    2. Notify your customers via portal alerts when their costs are on track to increase by more than 50% on the next invoice.
    3. Every service needs a trial mode. There needs to be a very cheap and limited way that current and potential customers can test drive Azure services without being surprised by thousands of dollars in charges.
    4. Don’t default to 800 RU/s when creating an Azure Cosmos DB Table with the…

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

    Hi Robin, thank you for your feedback. Will take one at a time.

    1. We realize RU/s (provisioned throughput) is a different model than people may be used to. It is however, not different than say provisioning a VM where you are paying for compute, IO and memory. Customers here too do not want to over-provision as there are unused resources. The same goes for Cosmos DB. Where we need to do better, is in helping people measure their usage and tune their RU/s. This work is planned and ongoing.

    2. We are currently planning on enhancements to Azure Advisor in the portal around this.

    3. Cosmos DB has three different means for Trial. There is the Azure Trial itself. There is also our Emulator (https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator). Finally, there is TryCosmosDB, (https://azure.microsoft.com/en-us/try/cosmosdb/)

    4. I will review this with our SDK team. Agree we should use minimums as…

  • Don't see your idea?

Azure Cosmos DB

Feedback and Knowledge Base