Drivers
58 results found
-
MongoChangeStreamCursor.getResumeToken() should be initialized on open
A newly opened change stream cursor returns null for
getResumeToken()
. This makes fault tolerance cumbersome and full of corner cases during the period before the cursor acquires its resume token, which can take a long time on a quiescent database.There exists a way to cause a change stream cursor to acquire a resume token immediately, even before it sees its first event, by talling
tryNext
. However, this also causes the cursor to block for the polling period (maxAwaitTime
), and shortening the polling period has other adverse effects.Fault tolerance and recovery logic would be much…
1 vote -
Support getting connection provider when connecting with aws authentication
It would be helpful if the connect function would support getting one of "@aws-sdk/credential-providers", in case of AWS authentication.
see:
https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_credential_providers.html#fromNodeProviderChainReason:
mongo db driver for node js, checks the credentials in specific order, and gives precedence to env. There is no way to override it.
This causes a problem when running from EKS cluster, and using web identity token file.
When my pod needs to access also other AWS resources like S3, and I expose AWS environment variables (like AWSACCESSKEYID, AWSSECRETACCESSKEY), the MongoDB driver takes into account the credentials before the web identity…1 vote -
IDE Plugin
Provide a way for MongoDB users to interact with their data from an IDE
1 vote -
Make the Go driver interface based so that it can be easily mocked for unitTests.
Provide interfaces for driver classes that can be used to mock the database for unit tests. Along the lines of what AWS does for its services:
https://aws.amazon.com/blogs/developer/mocking-out-then-aws-sdk-for-go-for-unit-testing/2 votes -
Client-Side Automatic Field Encryption - Support contacting keyvault via Sock Proxy
When using Atlas from our application in our Datacenter, we are able to connect to it without issue.
When adding CSFLE, some HTTP calls are made to login on Azure and access the AKV. These HTTP calls must go through a proxy.
3 votes -
Normalize maximum time in MS parameter name, maxTimeMS vs max_time_ms
Currently, some operations such as aggregate() or count_documents use maxTimeMS as parameter name, but others such as the find(), use max_time_ms, so unless you memorize which method uses which nomenclature, you have to check the docs every time.
This is specially confusing since, for example, find_one() uses max_time_ms but all the find_one_and_...() methods use maxTimeMS.1 vote -
CommandStartedEvent::getCommand() not instance of Explainable
I'm trying to build a verbose mode in our MongoDB wrapper library. I was able to implement debug output leveraging CommandSubscriber interface. This part works.
However what I would also like to do is create support for automatic explaining of queries that are being executed. This is not possible due to inconsistency in MongoDB (php) library.- CommandStartedEvent::getCommand() is not an instance of Explainable interface. It's just a deserialized object. There is no way to fetch the original command object to be able to do explain.
- Neither it is possible to remember such command object when creating it. As these are…
1 vote -
Asynchronous variant of IIdGenerator
We have use cases where IDs assigned to documents are generated by an external service. Communication with the external service is asynchronous. We have created custom IIdGenerator implementations for this purpose, and they work, but unfortunately the IIdGenerator interface is synchronous only. This exposes the known problems with "sync over async" code.
Obviously we could assign the IDs manually and not rely on using an IIdGenerator, but it would be very convenient to have an async variant of the IIdGenerator interface for this use case.
2 votes -
Create a close method on the MongoClient.
I have run into a situation where threads are not being garbage collected and are causing a serious issue. When we create a database for a specific user, we generate the users’ credentials inside of that database with access only to that database. The problem arises when we need to delete the user and database. The user sometime in the past connected to MongoDB using their credentials which leaves behind an open thread to the MongoDB that is logging into MongoDB once a minute with that users’ credentials. We then come along with our Admin user account and delete the…
1 vote -
Generic count property in _WriteResult class
Hi,
I'm using a MongoDB as a backend for my API and often come to a case where i want to validate whether I updated, inserted or deleted any records. At the moment I use the deletedcount and machtedcount properties in the DeleteResult and UpdateResult object. To provide a more generic way I thought it may makes sense to provide a new property in the generic WriteResult class called affectedrecords or something like that so you can generic react to the result of your database transaction and maybe return a 404 if nothing was updated, deleted or…
1 vote -
Better handling of circular reference serialization in Java
Given 2 generic POJOs that include references to each other such as:
package com.example; public class Course { Student _student; public void setStudent(Student student) { _student = student; } public Student getStudent() { return _student; } } package com.example; public class Student { private Course _course; public void setCourse(Course course) { _course = course; } public Course getCourse() { return _course; } }
It would be useful to have a configuration mechanism to prevent Maximum serialization depth exceeded exceptions from being thrown.
…package com.example; import com.mongodb.ConnectionString; import com.mongodb.MongoClientSettings; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import org.bson.codecs.configuration.CodecRegistry;
2 votes -
Have the drivers tell us the cost of network connectivity within a query
Have the drivers tell us 1. total query execution time. 2. how much of total query execution time was network connectivity/latency and 3. how much time was the query on the cluster.
This would then tell the developers the cost of network connectivity because right now there is no easy way to measure network connectivity impact to the overall execution time of the query.
1 vote -
Make The client model serializable
I am working on a mongodb connector for the Apache Flink project - https://flink.apache.org/
Internally, Flink is using java serialization to save the records it is working on in a state which in turn used to recover from failures etc, as well as for passing records between different tasks in the pipeline.
I have noticed the mongodb client model classes are not Serializable for instance, classes such as WriteModel https://github.com/mongodb/mongo-java-driver/blob/master/driver-core/src/main/com/mongodb/client/model/WriteModel.java and its subclasses or the different Options like ReplaceOptions https://github.com/mongodb/mongo-java-driver/blob/master/driver-core/src/main/com/mongodb/client/model/ReplaceOptions.javais there a reason for these classes to not be declared Serializable? Is there a way to contribute to the…
1 vote -
Multiple collection ACID transactions
Currently we can update multiple documents with one query if all documents belong to the same collection as shown below;
dB.collection.bulkWrite([ query1, query2, query3, query4 ])
This feature is wonderful but it is paramount if mongodb can enable us to use this query or something similar to update multiple documents from different collections with the one query instead of having to send and await each query one at a time as is currently the case.
The truth is, mongodb only needs to enable this feature of being able to update multiple documents with one query from different collections and then…
1 vote -
Serve API endpoint for MongoDB Compatibility Matrix
This is a feature request for website API calls/endpoints to retrieve the MongoDB Compatibility matrix for each driver language. For example, NodeJS is located here in HTML format https://docs.mongodb.com/drivers/node/current/compatibility/
It would be helpful to have a programmatic endpoint for the same compat table results. This will help log parsers and aggregators to quickly identify applications and clients that are connecting to deployments with untested or incompatible client drivers.
1 vote -
SnakeCaseElementNameConvention
Please add support for snake case convention. Snake Case is super popular with API designs.
https://mongodb.github.io/mongo-csharp-driver/2.13/reference/bson/mapping/conventions/
1 vote -
csfle support for zOS
Please modify your drivers so our java applications can encrypt and decrypt from the mainframe (zOS) UNIX environment. This missing feature is a road-block to our migration to Atlas.
We have multiple Java applications that run on an IBM mainframe. Those applications read and write into MongoDB collections, like inserting Mainframe data into MongoDB collections. The mongo-crypt driver for CSFLE does not work on the Mainframe UNIX environment.
Company policy states we have to encrypt all PHI/PII data prior to inserting the data into Atlas.
I had opened a support ticket with MongoDB and the final reply was you do…
7 votes -
Go Driver: Allow Client Side Field Level Encryption (CSFLE) to use IAM Role credentials credentials with KMS access
In order to get the MongoDB csfle lib to work with AWS KMS, we need to set
the following provider details (IAM user credentials) explicitly: accessKeyId and secretAccessKey.It is common and more secure practice for applications to be able to get temporary credentials using IAM roles which will have accessKeyId, secretAccessKey and sessionToken - https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html.
Currently, the Go Driver does not support sending 'sessionToken' along with provider details.
The libmongocrypt library has this support now - https://github.com/mongodb/libmongocrypt/pull/153.
It would be great if Go driver has this support.
2 votes -
GeoNear support on C# driver
Would be great to have GeoNear support on csharp driver https://docs.mongodb.com/manual/reference/operator/aggregation/geoNear/
1 vote -
Support "default" keyword in MongoDB's implementation of JSON Schema
Without defaults, there is a need to iterate though each property just to check if a default value is needed (most probably this can be easily done on type check). Also without defaults we need to remember checking it both in inserts and updates (for example with $push operator)
1 vote
- Don't see your idea?