From d798a26f1eb7ef3b633d8e331f7f07bd5b78bb9d Mon Sep 17 00:00:00 2001 From: pfurio Date: Thu, 22 Aug 2024 16:18:22 +0200 Subject: [PATCH 1/3] datastore: support transactions in mongodb aggregations, #TASK-6754 --- .../datastore/mongodb/MongoDBCollection.java | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java b/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java index ed76bdcb2..2adc3ed77 100644 --- a/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java +++ b/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java @@ -25,6 +25,7 @@ import com.mongodb.client.ClientSession; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; +import com.mongodb.client.model.Aggregates; import com.mongodb.client.model.IndexOptions; import com.mongodb.client.result.DeleteResult; import com.mongodb.client.result.UpdateResult; @@ -36,10 +37,7 @@ import org.slf4j.LoggerFactory; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; +import java.util.*; /** * @author Ignacio Medina <imedina@ebi.ac.uk> @@ -323,17 +321,39 @@ public List> privateFind(List queries, Bson pr return queryResultList; } + public DataResult copyDocuments(Bson query, String targetCollection) { + return copyDocuments(query, targetCollection, null); + } + + public DataResult copyDocuments(Bson query, String targetCollection, + ComplexTypeConverter converter) { + List aggregation = Arrays.asList( + Aggregates.match(query), + Aggregates.out(targetCollection) // $out step does not support transactions + ); + return aggregate(null, aggregation, converter, QueryOptions.empty()); + } + + public DataResult aggregate(ClientSession clientSession, List operations, + QueryOptions options) { + return aggregate(clientSession, operations, null, options); + } + public DataResult aggregate(List operations, QueryOptions options) { return aggregate(operations, null, options); } public DataResult aggregate(List operations, ComplexTypeConverter converter, QueryOptions options) { + return aggregate(null, operations, converter, options); + } + public DataResult aggregate(ClientSession clientSession, List operations, + ComplexTypeConverter converter, QueryOptions options) { long start = startQuery(); DataResult queryResult; - MongoDBIterator iterator = mongoDBNativeQuery.aggregate(operations, converter, options); + MongoDBIterator iterator = mongoDBNativeQuery.aggregate(clientSession, operations, converter, options); // MongoCursor iterator = output.iterator(); List list = new LinkedList<>(); if (queryResultWriter != null) { From 534f4ffd58ec08de6e6c6fc661cf52dff5f44395 Mon Sep 17 00:00:00 2001 From: pfurio Date: Thu, 22 Aug 2024 16:23:22 +0200 Subject: [PATCH 2/3] datastore: remove copyDocuments method, #TASK-6754 --- .../datastore/mongodb/MongoDBCollection.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java b/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java index 2adc3ed77..5a3c77d5b 100644 --- a/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java +++ b/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java @@ -321,19 +321,6 @@ public List> privateFind(List queries, Bson pr return queryResultList; } - public DataResult copyDocuments(Bson query, String targetCollection) { - return copyDocuments(query, targetCollection, null); - } - - public DataResult copyDocuments(Bson query, String targetCollection, - ComplexTypeConverter converter) { - List aggregation = Arrays.asList( - Aggregates.match(query), - Aggregates.out(targetCollection) // $out step does not support transactions - ); - return aggregate(null, aggregation, converter, QueryOptions.empty()); - } - public DataResult aggregate(ClientSession clientSession, List operations, QueryOptions options) { return aggregate(clientSession, operations, null, options); From 85f8fa44205dcc5906774b972701999ea37f2ffc Mon Sep 17 00:00:00 2001 From: pfurio Date: Fri, 11 Oct 2024 11:58:33 +0200 Subject: [PATCH 3/3] datastore: remove unused imports, #TASK-6754 --- .../opencb/commons/datastore/mongodb/MongoDBCollection.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java b/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java index 5a3c77d5b..c0e2a0b0e 100644 --- a/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java +++ b/commons-datastore/commons-datastore-mongodb/src/main/java/org/opencb/commons/datastore/mongodb/MongoDBCollection.java @@ -25,7 +25,6 @@ import com.mongodb.client.ClientSession; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; -import com.mongodb.client.model.Aggregates; import com.mongodb.client.model.IndexOptions; import com.mongodb.client.result.DeleteResult; import com.mongodb.client.result.UpdateResult; @@ -37,7 +36,10 @@ import org.slf4j.LoggerFactory; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; /** * @author Ignacio Medina <imedina@ebi.ac.uk>