Database

To report bugs, please use our SERVER JIRA project.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Change streams and Triggers for Time Series Collections

    Add Change streams and Trigger capabilities to Time Series Collections.
    Current Limitations don't allow this.
    https://docs.mongodb.com/manual/core/timeseries/timeseries-limitations/#change-streams

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    planned  ·  0 comments  ·  Change Streams  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  2. Please report mixed-type numeric _id fields in $merge stage error

    Posting this idea at the request of one of the Jira users. You can find more technical details about this in the Jira issue:

    https://jira.mongodb.org/browse/SERVER-61613

    The gist of it is that I may have two collections, b2 and b3, that are not distinguishable in the Mongo Shell, like this:

    db.b2.find()
    
    [
    
      { _id: 1, created: ISODate("2021-11-18T23:16:33.149Z") },
    
      { _id: 2, created: ISODate("2021-11-18T23:16:33.149Z") }
    
    ] 
    
    db.b3.find()
    
    [
    
      { _id: 1, created: ISODate("2021-11-18T22:53:02.113Z") },
    
      { _id: 2, created: ISODate("2021-11-18T22:53:02.113Z") }
    
    ] ```
    
    When I merge each into a collection `pg` with this syntax:
    
    

    db.pg.aggregate([{$merge: {into: "b3", whenMatched: "merge", whenNotMatched: "fail"}} ]);…

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Indexes  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  3. multiple centersphere as a geometry for geowithin

    im looking at one of my queries that a system regularly runs and some times we look for records that are within up to 250 different centerspheres, i wornder if we could enable, like geowithin has the ability to support multiple poligons, we could enable multiple centerspheres ,


    $match: {{'location':{
    "$geoWithin" : {
    "$centerSphere" : [[ 14.4321, -9.4321], 2.5232135647961246e-05]
    }
    }}, {'location':{
    "$geoWithin" : {
    "$centerSphere" : [[ 14.4321, -9.4321], 2.5232135647961246e-05]
    }
    }}, ...}

    we could do :
    ```
    $match: {'location':{
    "$geoWithin" : {
    "$centerSpheres" : [
    [[ 14.4321, -9.4321], 2.5232135647961246e-05] ,
    [[ 14.4321, -9.4321], 2.5232135647961246e-05],
    ...
    ]

        } 
    }}
    
    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Query and Aggregation Pipeline  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  4. There is a specific collection that I need more performance than others. Is there a way to assign more ram/memory to a specific collection?

    There is a specific collection that I need more performance than others. Is there a way to assign more ram/memory to a specific collection?

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Performance  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  5. 1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Query and Aggregation Pipeline  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  6. Reserve connections to admin users

    When the max number of connections is reached, no one can login to the database until some connections are closed or a failover is triggered (killing all the connections).

    The admin users should have a few reserved connections so that they can login to the database and take actions, like kill some connections.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Administration  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  7. Mongo replicaset init sync issue

    When we have large size mongo replica set, we may have to take out each nodes for maintenance for few hrs or days.

    In that case we have to increase size of Oplog to keep several days of transactions to resync nodes after maintanance.

    If the RS headroom falls below oplog window, then we have blow away data and do init sync to add node back after maintanence.

    The problem with very large size Oplog, will slow down any Change Stream process. Also it will occupy un neccasary space within collections.

    Can mongo offer alternative way to constantly dump oplog…

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Replication  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  8. Shard Drain/ Removal issue

    If we have more shards, and if want to remove few shards (more than 1), we use below command.

    db.adminCommand( { removeShard : "Shardname" } )

    Ex, if I have Shard 1, 2, 3, 4, 5. want to remove Shard 2 & 5.

    I want to remove one shard at a time to minimize impact to users , then want to remove, say Shard 2, then want to remove Shard 5.

    If we do this, some chunks from Shard#2 also get moved to "Shard#5", which is suppose to removed later. This causes Shard#5 chunk size increase. Then takes more time.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Sharding  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  9. Implement read-only fields and documents in database

    I haven't tracked down this functionality yet, so excuse me if it is already implemented.

    As a developer and system administrator I came to a dilemma how to prevent myself to make changes to documents.

    I can limit myself as a programmer, but as a administrator I can always logon to console and make changes ''by hand''.

    I was thinking of read-only field type, which once set, could not be updated nor removed from document (although backup and restore is the first problem which comes to mind). This limit should be set on a database level. Read-only field could typically…

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  10. The ability to perform a quick rollback or rewind of the database

    This is along the lines of a flashback, to a previous point in time say from a very impacting change to data.. A large delete or data modification event. This avoids the need to take a complete outage for hours and hours restoring TBs of data and re-applying change logs. Would be great if this could be done to the granularity of a single or multiple collections too. This could use the oplogs present locally or in the oplog store.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  11. `Blocking` Flag for Explain Output

    It's not always obvious which aggregation stages are blocking or non-blocking when viewing explain output for an aggregation command. It would be helpful to include a blocking flag for each stage of an aggregate command in its explain output.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  12. restricted mode for database

    database in restricted mode can very helpful .. so we can carry out , lock users out, rebuild indexes, compact and other admin tasks.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  13. Support for converting between UUID and String

    It would be nice to have UUID support for $convert and $toString functions - and maybe also having a new $toUuid function added.

    We have documents with UUIDs stored as UUIDs, and others where they are stored as Strings - and need to $lookup a document with an UUID type _id from a document where that uuid is stored as a String. As far as I can tell that is currently not possible.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  14. Allow changing config values without restart

    It would be great if configuration changes could be effected without needed to restart nodes.

    For example, audit filter, enabling/disabling different security mechanisms.

    This would be especially useful for Atlas and clients with large clusters where restarts will cause a performance deficit due to cold cache after node restarts.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  15. Provide straightforward syntax for 1-to-1 joins in aggregation

    The syntax for joins that bring back multiple documents from foreign collections is very straightforward and yields exactly what one would expect, but simple joins that are bread and butter in SQL require very convoluted and expensive to run syntax.

    Consider a product database that has products, categories and reviews collections. Each product has a unique category and may have multiple reviews. Getting all reviews in an aggregation is very straightforward (top stage), but getting categories, similar to SQL, is as convoluted as it gets (bottom stage).

    db.products.aggregate(
    [
        //
        // Document aggregates naturally aggregate foreign documents
        // into
    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  Query and Aggregation Pipeline  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  16. MultiTenant Abstraction

    Just as a time-series collection in MongoDB 5.0 abstracts the underlying implementation of the bucketing pattern, customers who implement a multi-tenant model through separate databases per tenant run into the issue of too many dhandles and would benefit from an abstraction of the implementation of a collection-with-discriminator-field - they would be able to meet their internal compliance requirement of separate databases per customer, and would have minimal changes to their code.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  17. Retrywrite error fixed in Mongodb 4.4

    We have test the retry write in Atlas by using mongodb java driver in Mongodb 4.4 cluster. The error is similar to SERVER-53624(https://jira.mongodb.org/browse/SERVER-53624). The supporter respond the error will fix in Mongodb 5.0. We hope this error can also fixed in Mongodb 4.4

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  18. Make targeted query to a specific shard without using the shard key as part of query.

    As of right now you need to use the shard key as part of the query to make a target query to a specific shard. Would like the ability to make targeted query to a specific shard without using the shard key as a part of the query.

    Maybe one way of doing this is using index metadata to avoid scatter gather query and using that index meta data to instead make targeted queries on sharded clusters.

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  19. Easy Paging with offset

    Paging is a common functionality for REST APIs. When implementing paging queries for large datasets skip and limit is often not an option. When using query filters with non unique fields, such as creation date there can be problems such as duplicate entities on subsequent pages. It would be great to be able to additionaly pass in an offset document reference, that would be used as a start in case the filter does not lead to a unique starting point.

    so for example
    db.test.find({"creationDate" : {$gte:ISODate('2021-08-27T07:25:00Z')}, {"offset":<ObjectId>).sort({"creationDate":1}).limit(20)

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  20. Add a $median accumulator

    There is the $avg operator that returns the average of a set of values. Why not a $median?

    1 vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    planned  ·  1 comment  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  • Don't see your idea?

Feedback and Knowledge Base