Converted all eval commands to runCommands

This commit is contained in:
Vladislav Chumak
2019-03-22 22:31:49 +01:00
parent 95e64bac5c
commit fa18662116
8 changed files with 74 additions and 55 deletions
@@ -2,7 +2,7 @@ package com.sap.sailing.windestimation.data.persistence.maneuver;
import java.net.UnknownHostException;
import org.bson.conversions.Bson;
import org.bson.Document;
import com.sap.sailing.windestimation.util.LoggingUtil;
@@ -16,7 +16,7 @@ public abstract class AbstractTransformedManeuversPersistenceManager<T> extends
this.dependencyOnOtherPersistenceManagers = dependencyToOtherPersistenceManagers;
}
protected abstract Bson getMongoDbEvalStringForTransformation();
protected abstract String getMongoDbEvalStringForTransformation();
public void createIfNotExistsCollectionWithTransformedManeuvers() {
boolean collectionExists = collectionExists();
@@ -48,7 +48,7 @@ public abstract class AbstractTransformedManeuversPersistenceManager<T> extends
}
dropCollection();
LoggingUtil.logInfo("Transformation for \"" + getCollectionName() + "\" collection started.");
Object result = getDb().runCommand(getMongoDbEvalStringForTransformation());
Object result = getDb().runCommand(Document.parse(getMongoDbEvalStringForTransformation()));
long numberOfElements = countElements();
if (numberOfElements < 1) {
dropCollection();
@@ -1,10 +1,6 @@
package com.sap.sailing.windestimation.data.persistence.maneuver;
import java.net.UnknownHostException;
import java.util.Arrays;
import org.bson.Document;
import org.bson.conversions.Bson;
public class ManeuverForDataAnalysisPersistenceManager
extends AbstractTransformedManeuversForDataAnalysisPersistenceManager {
@@ -22,20 +18,18 @@ public class ManeuverForDataAnalysisPersistenceManager
//TODO repair if required
@Override
protected Bson getMongoDbEvalStringForTransformation() {
return new Document().append("aggregate", RaceWithManeuverForDataAnalysisPersistenceManager.COLLECTION_NAME + "." + AbstractRaceWithEstimationDataPersistenceManager.COMPETITOR_TRACKS_COLLECTION_NAME_EXTENSION).
append("pipeline", Arrays.asList(
new Document("$addFields", new Document().append("competitorTracks.elements.regattaName", "$regattaName")),
new Document("$addFields", new Document().append("competitorTracks.elements.windQuality", "$windQuality")),
new Document("$addFields", new Document().append("competitorTracks.trackId",
new Document("$concat", Arrays.asList("$regattaName", " - ", "$trackedRaceName")))),
new Document("$unwind", "$competitorTracks").
new Document("$addFields", new Document()
.append("competitorTracks.elements.trackId", new Document("$concat", Arrays.asList("$competitorTracks.trackId", " # ", "$competitorTracks.competitorName")))
.append("competitorTracks.avgTrackSpeedInKnots", new Document("$divide", new Document("$divide",
Arrays.asList("$competitorTracks.distanceTravelledInMeters", new Document("$divide",
Arrays.asList(new Document("$subtract",
Arrays.asList("$competitorTracks.endUnixTime", "$competitorTracks.startUnixTime")))),
protected String getMongoDbEvalStringForTransformation() {
return "{" +
"aggregate: '" + RaceWithManeuverForDataAnalysisPersistenceManager.COLLECTION_NAME + "." + AbstractRaceWithEstimationDataPersistenceManager.COMPETITOR_TRACKS_COLLECTION_NAME_EXTENSION + "',\r\n" +
"pipeline: [\r\n"
+ "{$addFields: {\"competitorTracks.elements.regattaName\": '$regattaName'}},\r\n"
+ "{$addFields: {\"competitorTracks.elements.windQuality\": '$windQuality'}},\r\n"
+ "{$addFields: {\"competitorTracks.trackId\": {$concat: ['$regattaName', ' - ', '$trackedRaceName']}}},\r\n"
+ "{$unwind: '$competitorTracks'},\r\n" + "{$addFields: {\r\n"
+ " \"competitorTracks.elements.trackId\": {$concat: ['$competitorTracks.trackId', ' # ', '$competitorTracks.competitorName']},\r\n"
+ " 'competitorTracks.avgTrackSpeedInKnots': {$divide: [\r\n" + " {$divide:\r\n"
+ " ['$competitorTracks.distanceTravelledInMeters',\r\n" + " {$divide: \r\n"
+ " [ {$subtract: ['$competitorTracks.endUnixTime', '$competitorTracks.startUnixTime']},\r\n"
+ " 1000.0\r\n" + " ]}\r\n" + " ]\r\n"
+ " },\r\n" + " 0.5144444444444\r\n" + " ]},\r\n"
+ " 'markPassingsCountMatchesWaypointsCount': {$eq: ['$competitorTracks.markPassingsCount', '$competitorTracks.waypointsCount']},\r\n"
@@ -49,7 +43,10 @@ public class ManeuverForDataAnalysisPersistenceManager
+ " {'competitorTracks.avgTrackSpeedInKnots': {\r\n" + " $gt: 1.0\r\n"
+ " }}\r\n" + " ]\r\n" + "}},\r\n" + "{$project: {\r\n"
+ " elements: '$competitorTracks.elements'\r\n" + "}},\r\n" + "{$unwind: '$elements'},\r\n"
+ "{$replaceRoot: {newRoot : '$elements'}},\r\n" + "{$out: '" + COLLECTION_NAME + "'}\r\n" + "])\r\n";
+ "{$replaceRoot: {newRoot : '$elements'}},\r\n" + "{$out: '" + COLLECTION_NAME + "'}\r\n" +
"],\r\n" +
"cursor: {}\r\n" +
"}";
}
}
@@ -2,8 +2,6 @@ package com.sap.sailing.windestimation.data.persistence.maneuver;
import java.net.UnknownHostException;
import org.bson.conversions.Bson;
public class ManeuverForEstimationPersistenceManager
extends AbstractTransformedManeuversForEstimationPersistenceManager {
@@ -19,8 +17,10 @@ public class ManeuverForEstimationPersistenceManager
}
@Override
protected Bson getMongoDbEvalStringForTransformation() {
return "db.getCollection('" + RaceWithManeuverForEstimationPersistenceManager.COLLECTION_NAME + "." + AbstractRaceWithEstimationDataPersistenceManager.COMPETITOR_TRACKS_COLLECTION_NAME_EXTENSION + "').aggregate([\r\n" +
protected String getMongoDbEvalStringForTransformation() {
return "{" +
"aggregate: '" + RaceWithManeuverForEstimationPersistenceManager.COLLECTION_NAME + "." + AbstractRaceWithEstimationDataPersistenceManager.COMPETITOR_TRACKS_COLLECTION_NAME_EXTENSION + "',\r\n" +
"pipeline: [\r\n" +
"{$match: {\r\n" +
" 'clean': true\r\n" +
"}},\r\n" +
@@ -30,7 +30,9 @@ public class ManeuverForEstimationPersistenceManager
"{$unwind: '$elements'},\r\n" +
"{$replaceRoot: {newRoot : '$elements'}},\r\n" +
"{$out: '" + COLLECTION_NAME + "'}\r\n" +
"])";
"],\r\n" +
"cursor: {}\r\n" +
"}";
}
}
@@ -2,8 +2,6 @@ package com.sap.sailing.windestimation.data.persistence.maneuver;
import java.net.UnknownHostException;
import org.bson.conversions.Bson;
public class PenaltyCircleManeuverForDataAnalysisPersistenceManager
extends AbstractTransformedManeuversForDataAnalysisPersistenceManager {
@@ -19,10 +17,16 @@ public class PenaltyCircleManeuverForDataAnalysisPersistenceManager
}
@Override
protected Bson getMongoDbEvalStringForTransformation() {
return "db.getCollection('" + ManeuverForDataAnalysisPersistenceManager.COLLECTION_NAME + "').aggregate([\r\n" + "{$match: {\r\n" + " $and: [\r\n"
protected String getMongoDbEvalStringForTransformation() {
return "{" +
"aggregate: '" + ManeuverForDataAnalysisPersistenceManager.COLLECTION_NAME + "',\r\n" +
"pipeline: [\r\n" +
"{$match: {\r\n" + " $and: [\r\n"
+ " {'category': {\r\n" + " $eq: '_360'\r\n" + " }}\r\n" + " ]\r\n"
+ "}},\r\n" + "{$out: 'penaltyCirclesForDataAnalysis'}\r\n" + "])\r\n";
+ "}},\r\n" + "{$out: '" + COLLECTION_NAME + "'}\r\n" +
"],\r\n" +
"cursor: {}\r\n" +
"}";
}
}
@@ -2,8 +2,6 @@ package com.sap.sailing.windestimation.data.persistence.maneuver;
import java.net.UnknownHostException;
import org.bson.conversions.Bson;
public class PenaltyCircleManeuverForEstimationPersistenceManager
extends AbstractTransformedManeuversForEstimationPersistenceManager {
@@ -19,15 +17,19 @@ public class PenaltyCircleManeuverForEstimationPersistenceManager
}
@Override
protected Bson getMongoDbEvalStringForTransformation() {
return "db.getCollection('" + ManeuverForEstimationPersistenceManager.COLLECTION_NAME + "').aggregate([\r\n" +
protected String getMongoDbEvalStringForTransformation() {
return "{" +
"aggregate: '" + ManeuverForEstimationPersistenceManager.COLLECTION_NAME + "',\r\n" +
"pipeline: [\r\n" +
"{$match: {\r\n" +
" {'category': {\r\n" +
" $eq: '_360'\r\n" +
" }}\r\n" +
"}},\r\n" +
"{$out: 'penaltyCirclesForEstimation'}\r\n" +
"])";
"{$out: '" + COLLECTION_NAME + "'}\r\n" +
"],\r\n" +
"cursor: {}\r\n" +
"}";
}
}
@@ -2,29 +2,35 @@ package com.sap.sailing.windestimation.data.persistence.maneuver;
import java.net.UnknownHostException;
import org.bson.conversions.Bson;
public class RegularManeuverWithMarkPassingForDataAnalysisPersistenceManager
extends AbstractTransformedManeuversForDataAnalysisPersistenceManager {
public static final String COLLECTION_NAME = "regularManeuversWithMarkPassingsForDataAnalysis";
public RegularManeuverWithMarkPassingForDataAnalysisPersistenceManager() throws UnknownHostException {
super(new ManeuverForDataAnalysisPersistenceManager());
}
@Override
public String getCollectionName() {
return "regularManeuversWithMarkPassingsForDataAnalysis";
return COLLECTION_NAME;
}
@Override
protected Bson getMongoDbEvalStringForTransformation() {
return "db.getCollection('maneuversForDataAnalysis').aggregate([\r\n" + "{$match: {\r\n" + " $and: [\r\n"
protected String getMongoDbEvalStringForTransformation() {
return "{" +
"aggregate: '" + ManeuverForDataAnalysisPersistenceManager.COLLECTION_NAME + "',\r\n" +
"pipeline: [\r\n" +
"{$match: {\r\n" + " $and: [\r\n"
+ " {'absMainCurveAngle': {\r\n" + " $gte: 20\r\n" + " }},\r\n"
+ " {'absMainCurveAngle': {\r\n" + " $lte: 120\r\n" + " }},\r\n"
+ " {'deviationTackAngle': {\r\n" + " $ne: null\r\n" + " }},\r\n"
+ " {'deviationJibeAngle': {\r\n" + " $ne: null\r\n" + " }},\r\n"
+ " {'clean': {\r\n" + " $eq: true\r\n" + " }}\r\n" + " ]\r\n" + "}},\r\n"
+ "{$out: 'regularManeuversWithMarkPassingsForDataAnalysis'}\r\n" + "])\r\n";
+ "{$out: '" + COLLECTION_NAME + "'}\r\n" +
"],\r\n" +
"cursor: {}\r\n" +
"}";
}
}
@@ -2,26 +2,32 @@ package com.sap.sailing.windestimation.data.persistence.maneuver;
import java.net.UnknownHostException;
import org.bson.conversions.Bson;
public class RegularManeuverWithoutMarkPassingForDataAnalysisPersistenceManager
extends AbstractTransformedManeuversForDataAnalysisPersistenceManager {
private static final String COLLECTION_NAME = "regularManeuversWithoutMarkPassingsForDataAnalysis";
public RegularManeuverWithoutMarkPassingForDataAnalysisPersistenceManager() throws UnknownHostException {
super(new RegularManeuverWithMarkPassingForDataAnalysisPersistenceManager());
}
@Override
public String getCollectionName() {
return "regularManeuversWithoutMarkPassingsForDataAnalysis";
return COLLECTION_NAME;
}
@Override
protected Bson getMongoDbEvalStringForTransformation() {
return "db.getCollection('regularManeuversWithMarkPassingsForDataAnalysis').aggregate([\r\n" + "{$match: {\r\n"
protected String getMongoDbEvalStringForTransformation() {
return "{" +
"aggregate: '" + RegularManeuverWithMarkPassingForDataAnalysisPersistenceManager.COLLECTION_NAME + "',\r\n" +
"pipeline: [\r\n" +
"{$match: {\r\n"
+ " $and: [\r\n" + " {'category': {\r\n" + " $ne: 'MARK_PASSING'\r\n"
+ " }}\r\n" + " ]\r\n" + "}},\r\n"
+ "{$out: 'regularManeuversWithoutMarkPassingsForDataAnalysis'}\r\n" + "])\r\n";
+ "{$out: '" + COLLECTION_NAME + "'}\r\n" +
"],\r\n" +
"cursor: {}\r\n" +
"}";
}
}
@@ -2,8 +2,6 @@ package com.sap.sailing.windestimation.data.persistence.maneuver;
import java.net.UnknownHostException;
import org.bson.conversions.Bson;
public class RegularManeuversForEstimationPersistenceManager
extends AbstractTransformedManeuversForEstimationPersistenceManager {
@@ -19,8 +17,10 @@ public class RegularManeuversForEstimationPersistenceManager
}
@Override
protected Bson getMongoDbEvalStringForTransformation() {
return "db.getCollection('" + ManeuverForEstimationPersistenceManager.COLLECTION_NAME + "').aggregate([\r\n" +
protected String getMongoDbEvalStringForTransformation() {
return "{" +
"aggregate: '" + ManeuverForEstimationPersistenceManager.COLLECTION_NAME + "',\r\n" +
"pipeline: [\r\n" +
"{$match: {\r\n" +
" $and: [\r\n" +
" {$or: [\r\n" +
@@ -43,7 +43,9 @@ public class RegularManeuversForEstimationPersistenceManager
" ]\r\n" +
"}},\r\n" +
"{$out: '" + COLLECTION_NAME + "'}\r\n" +
"])";
"],\r\n" +
"cursor: {}\r\n" +
"}";
}
}