Drivers
58 results found
-
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…
2 votes -
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 -
2 votes
-
Support authentication credential rotation
MongoDB drivers should provide support for rotating authentication credentials:
- The customer may opt to rotate a specific credential (a password, client keytab, or a re-issued client certificate - when your private key will be the old one or a new one and the certificate will always be updated), or both the username and its credential
- drivers must support authentication hooks/override methods to handle custom logic. For example: when an external vault processes the password change, it will have a delay before the SCRAM / PLAIN password gets changed in the MongoDB Server / LDAP server. The customer-provided code will take…
2 votes -
Add support for directly marshaling arrays and slices to Extended JSON
The Extended JSON encoder does not support encoding arrays and slices by themselves. The decoder does support decoding JSON arrays into slices. Add support for encoding arrays and slices to a JSON array.
2 votes -
Provide a mechanism for specifying default database name in connection string
According to https://jira.mongodb.org/browse/GODRIVER-914 the connection string is only meant to specify the auth database. However, many of the official MongoDB drivers and tools also use the database specified in the connection string as the default if commands are run without specifying a database name.
The Go driver should either mirror this behaviour found in other drivers, or a parameter should be added to the connection string to allow a default database to be explicitly defined.
2 votes -
if drive can deal with DateTime.Date,it will be useful
we offen have this require,we need to compare DateTime field on Date(exclude time),but if use drive compare with DateTime.Date,drive will throw a exception tell us dont support..
db.CheckOns.Find(x => x.RecordTime.Date == new DateTime(2020, 3, 19)).ToList();
//public DateTime RecordTime{get;set}2 votes -
use ConventionPack in aggregate same as find
for example :We want save string value of Enum to database,we set EnumRepresentationConvention Convention.
then we can use it in match. but in aggregate group,it dosent work:public enum Gender { Male,Female}
public class Person
{
public int Age { get; set; }
public Gender Gender { get; set; }
}
[HttpGet("test")]
public object Test()
{
var query=db.database.GetCollection<Person>("persons").Aggregate().Group(x => x.Age,g=>new {
g.Key,
MaleCount=g.Sum(x=>x.Gender==Gender.Male?1:0),
FemaleCount = g.Sum(x => x.Gender == Gender.Female ? 1 : 0),
});
var queryString = query.ToString();
return queryString;
}
//queryString will be: aggregate([{ "$group" : { "id" : "$age", "MaleCount" : { "$sum" : {…2 votes -
JVM Driver - Implement CRaC interfaces into connection pool to allow for database access in an AWS Lambda function startup with SnapStart
See AWS Docs here - https://docs.aws.amazon.com/lambda/latest/dg/snapstart-runtime-hooks.html
Essentially, the pool should disconnect all open connections when saving state to prevent accidental connection reuse.
1 vote -
Support for FilterDefinition as part of Atlas Search/$search
Allow the Search Function to accept a FilterDefinition<T> object and/or a SortDefinition object to do the filtering/sorting as part of the Search routine instead of it being in a unique format only to search.
1 vote -
Closing a closed cursor should not throw
If a cursor is already closed, and
close()
is called, it should quietly do nothing. ThrowingIllegalStateException
is just rude.1 vote -
single-thread pymongo
Hi.
I am using MongoDB Atlas and have recently moved my site to Google App Engine.
GAE supports only limited multithreading and outputs errors about PyMongo.Disabling multi-threading option of PyMongo will help me.
Thanks.
1 vote -
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 calling
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 significantly…
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 -
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 -
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 -
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
- Don't see your idea?