Database

To report bugs, please use our SERVER JIRA project.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Higher IOPS for small disk sizes (MongoDB Atlas on Azure)

    AWS and GCP start with 2300-3000 IOPS for M10+ instance from the smallest disk size (8Gb), whereas on Azure we get 120 IOPS with 8Gb, 240 with 64Gb, 500 IOPS with 128Gb ... nowhere near to what AWS/GCP offer (120 - 500 IOPS for a database server is nothing!).

    So if I take a bigger storage (512Gb for 2300 IOPS) to be on par with AWS/GCP then there is a dramatic price difference of your MongoDB Atlas offering for Azure compared to AWS/GCP - it gets 2 times more expensive!

    I understand that there is a dependency on the…

    10 votes

    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

    2 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)
  2. Enforced Password Complexity

    Please allow for the enforcement of password complexity:
    - Setting a password policy that restricts users to a certain level of complexity (e.g 10 chars with special characters)

    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)
  3. collection-level users should be able to list their collections

    Currently users with collection-specific read or read/write permissions are not authorized to perform the following commands:

    db.listCollections()
    show collections
    db.getCollectionNames()

    This impacts the shell (and also third party tools that won't let users access their permitted collections because the list of collections is blocked in the first place)

    Suggestion:

    Users with collection-specific read or read/write permissions should be able to run the above commands and the result would only present the collections for which the user has some read or write privileges (instead of blocking everything).

    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)
  4. Add option to $dayOfWeek to choose between Monday and Sunday

    Hi!

    I was wondering if you could add an optional parameter to $dayOfWeek that allows you to choose on which day you want the functionality to start counting.

    Thanks!

    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  ·  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)
  5. Multi-version-intermediate upgrade package

    When upgrading the MongoDB server community edition from a very old version to the newest version one cannot skip installing intermediate versions, e. g. version 3.6 -> 4.4 does not work because the database files cannot be auto-migrated and the FeatureCompatibilityVersion is too low on 3.6 (or not existent).

    Instead we have to install 3.6 -> 4.0 -> 4.2 -> 4.4 and execute db.adminCommand( { setFeatureCompatibilityVersion: "..." } ) appropriately in between installing each new version.

    I propose creating an additional installer package for Linux which takes care of all that to migrate the internal database structure from the installed…

    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)
  6. Add regex support in pipeline operator `replaceAll`

    It would be very nice to have something like this possible:

    { $replaceAll:
       { input: "$text", find: "/[;,.]/g", replacement: "." }
    }
    

    Many thanks !

    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  ·  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)
  7. Have an API to have the History of Primary Nodes

    Have an API to have the History of Primary Nodes,from the time the Replica set is initiated.I know we can have alerts for Primary switch over,but if we want to analyse the data of elections/primary node for say about last 1 year , an API would help.

    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)
  8. Unique index in sharded cluster

    For enforcing uniqueness in a sharded cluster, the officially recommended approach provided here https://docs.mongodb.com/manual/tutorial/unique-constraints-on-arbitrary-fields/#std-label-shard-key-arbitrary-uniqueness is simplistic and in production environment it brings non-trivial amount of work. Some considerations:

    1. Ephemeral issues might cause inconsistencies between the two collections (for example, unique index collection update succeeded but not the main collection) and make some unique keys not useable.
    2. There are many changes needed (we're using ORM Mongoose, there are many hooks for it to change) for enforce this universally.

    What we ended up doing is to use distributed ephemeral locks (a TTLed MongoDB collection) to lock on the unique keys before adding…

    3 votes

    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. 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  ·  Workload Management  ·  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. Please create a build in role that grants developers all permissions needed to add/edit schema validations short of adminAll.

    Please create a built-in role that grants developers all permissions needed to add/edit schema validations short of dbAdminAnyDatabase.

    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  ·  Security  ·  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. x509 authentication with other certificate's components than (O,OU,DC)

    In some entities (e.g. ours), the O, OU, DC triplet is not detailled enough or not appropriate, which makes it impossible to authenticate through x509.

    For exemple, in our entity, the O and OU are the same for all certificates (because all servers are in the same Organisation Unit), and the DC field is not used. We do use other fields though.
    Because of that, we can't use the x509 authentication feature, although it is strongly asked for by the security Team.

    Would it be possible to enhance the x509 authentication mechanism to allow more flexibility for the authentication's fields?

    6 votes

    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. URL Decode `readPreferenceTags`

    If a url encoded value is set to readPreferenceTags it will be ignored causing for instance connecting to analytics node impossible from tooling that correctly encodes the urls.

    It can look like this for instance: readPreferenceTags=nodeType:ANALYTICS becomes readPreferenceTags=nodeType%3AANALYTICS

    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)
  13. 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)
  14. Rename an existing index

    Allow for the possibility of renaming an existing index, without having to drop and recreate it.

    Let us say a unique index exists in production, it might not be possible to safely drop it. Yet the index name might not be ideal.

    2 votes

    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  ·  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)
  15. Data Replication from one MongoDB Cluster to another MongoDB Cluster

    Create an option for the user to replicate data from one MongoDB Cluster to another MongoDB Cluster inside the account. We don't need to migrate data, I need replicate data from an Production Cluster to an Dev/Test Cluster. Thanks.

    8 votes

    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)
  16. support $lookup for update aggregation

    We frequently denormalise either full documents or subsets to different documents in order to speed up reading, create indexes or paginate/sort on fields.

    Consider a user collection and a task collection, if a task can be assigned to the user, it makes sense to just put the user document on the task they are assigned. But an update to a user now requires you to update the user both in the user collection and all tasks with that user in the tasks collection.

    This can be achieved but does introduce some complexity, however the introduction of updates using aggregation pipelines…

    2 votes

    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

    2 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)
  17. the profile output in association with the $comment query operator need to have consistency across operations.

    I have observed the different profile result with regard to $comment query operator in association with find and update operation respectively as follows;

    • find operation shows a comment on the command.filter.$comment and the command.comment field in the system.profile collection.

      op: 'query',
      ns: 'db101.Bets',
      command: {
      find: 'Bets',
      filter: {
      _id: ObjectId("61a9db4b3bd34e4f68fb9abc"),
      '$comment': 'test-dba'
      },
      comment: 'test-dba',
      lsid: { id: UUID("43ebee67-3184-4ede-9cee-ecca7457861a") },
      '$db': 'db101'
      },

    • update operation shows a comment only on the command.q.$comment field in the system.profile collection.

      op: 'update',
      ns: 'db101.Bets',
      command: {
      q: {
      _id: ObjectId("61a9db4b3bd34e4f68fb9abc"),
      '$comment': 'test-dba'
      },
      u: { '$set': { odds: 0.5 } },
      multi:…

    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)
  18. Support for CentOS Stream 8 in MongoDB OPS Manager version 5.x

    Per the Server Support Matrix https://www.mongodb.com/try/download/ops-manager support for CentOS Stream 8 is not al.
    We would like to see the currently supported MongoDB OPS Manager version 5.x available on the CentOS Stream 8 distribution.

    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  ·  Security  ·  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. 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)
  20. 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)
  • Don't see your idea?

Feedback and Knowledge Base