Drivers
-
Create Atlas Search helper method for aggregations in java
Java driver doesn’t include a {{search()}} helper method in the Aggregation class, for facilitating Atlas Search queries.
While it's possible to build a custom pipeline which includes a
{ $ search ... }
stage, a dedicated helper method would be convenient.28 votes -
geoContain
Dear all,
according to the attached image, I have some documents (in blue, with id from 1 to 5) having a geographic extent and a search area (in yellow).
I need to find all documents where search area is completly inside the document's geometry.
Using different words, I need to find all documents where geometry completly covers the given search area.
In my sample, the geo query should return the document with id 1.
This kind of query has a opposite logic than the $geoWithinCould you provide a $geoContain functionality in the next future?
9 votes -
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 -
CSFLE - Encryption of fields within an Array Object instead of whole Array
CSFLE - Can you provide Encryption of fields within an Array Object as part of mongo-crypt library in the future releases. current library encrypts the whole array and we are not able to do queries within the Array object.
6 votes -
For Client Side Field Level Encryption (CSFLE) load IAM credentials for KMS by default
In order to get the mongodb csfle lib to work with AWS KMS we need to set
the following provider details explicitly: accessKeyId and secretAccessKey.It is common and more secure practice for applications to be able to load these automatically.
If we do not supply the accessKeyId and secretAccessKey then the java driver could make an API call to
retrieve temporary credentials from the EC2 instance it is running on.It is explained in detail here:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html3 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 -
Short-lived AWS EKS token
Native support for short-lived AWS EKS token in MongoDB java driver, with the ability to refresh the key without any application downtime.
2 votes -
It will be helpful to provide Sock Proxy support for our drivers
Some customers have security policy restriction to directly connect to Atlas. So it will be helpful for them to use sock proxy to connect.
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 -
URI validation
I was building the URI in a spring configuration file as
spring.data.mongodb.uri=${MONGODB_URI}/test?retryWrites=true&w=majoritywhere MONGODB_URI came from a kubernetes secret (as it contains user & password)
somehow a new-line had slipped into the kubernetes secret, so the query was effectively asking for "fpos-dev-pl-1.kqybg.mongodb.net\n"
Besides learning how to correctly configure secrets, I learned in the process that neither Spring nor mongo was validating that spring.data.mongodb.uri was a well-formed URI and the application failed to start with error messages relating to not finding DNS and not being able to resolve the TXT record. This was very confusing.
The driver should accept a URI…
1 vote -
CSFLE - Enable automatic decryption of change streams
Currently change streams are disabled when a CSFLE MonogClient() session is used.
This is due to this CSFLE specifications.Mongocryptd will not support “collectionless” aggregation metadata sources, which read metadata that doesn’t pertain to a particular collection. The drivers should not contact mongocryptd for such commands, since they don’t have a particular schema to pass to mongocryptd, so it is the drivers’ ultimate responsibility to return an error to the application for the collectionless aggregation metadata sources:
$currentOp $changeStream for watching a database or the whole cluster $listSessions $listLocalSessions
Enable auto decryption and change streams in the presence of auto-encryption-settings
1 vote -
Ignore unmapped fields in pojo deserialization
A recent ticket (00664772) with the mongodb support team confirm that the following case is not handled by the Java driver:
class Foo {
int x;
int y;
}I can successfully write and read it. However, if the Document has extra fields, it cannot be deserialized and no option exists to allow this behavior:
{ x:123, y:456, z:789 } // why can't I ignore 'z'?
My suggestion is, provide an annotation to support this behavior:
@BsonIgnoreUnmappedFields
class Foo {
int x;
int y;
}1 vote
- Don't see your idea?