Adds indexes for query optimization

This commit is contained in:
Patrick McDonagh
2017-03-03 17:56:32 -06:00
parent 5ddc28ad92
commit bb1323e146
7 changed files with 460 additions and 141 deletions

View File

@@ -12,6 +12,7 @@ import com.mongodb.client.MongoCollection;
import com.mongodb.client.model.Accumulators;
import com.mongodb.client.model.Aggregates;
import com.mongodb.client.model.Indexes;
import com.mongodb.client.model.Sorts;
import org.bson.Document;
@@ -36,11 +37,55 @@ public class Database {
Database(){
mongoClient = new MongoClient();
database = mongoClient.getDatabase(pocDatabase);
MongoCollection<Document> cardCollection = database.getCollection("cards");
cardCollection.createIndex(Indexes.ascending("timestamp", "strokeNumber"));
MongoCollection<Document> wellDataCollection = database.getCollection("wellData");
wellDataCollection.createIndex(Indexes.ascending("timestamp", "tagName"));
MongoCollection<Document> gaugeOffCollection = database.getCollection("gaugeOff");
gaugeOffCollection.createIndex(Indexes.ascending("timestamp", "tagName"));
MongoCollection<Document> wellTestCollection = database.getCollection("wellTests");
wellTestCollection.createIndex(Indexes.ascending("testStartTime"));
MongoCollection<Document> fluidShotsCollection = database.getCollection("fluidShots");
fluidShotsCollection.createIndex(Indexes.ascending("timestamp"));
MongoCollection<Document> runStatusCollection = database.getCollection("runStatus");
runStatusCollection.createIndex(Indexes.ascending("timestamp"));
MongoCollection<Document> wellConfigCollection = database.getCollection("wellConfiguration");
wellConfigCollection.createIndex(Indexes.ascending("timestamp"));
}
Database(String dbHostname){
mongoClient = new MongoClient(dbHostname);
database = mongoClient.getDatabase(pocDatabase);
MongoCollection<Document> cardCollection = database.getCollection("cards");
cardCollection.createIndex(Indexes.ascending("timestamp"));
MongoCollection<Document> wellDataCollection = database.getCollection("wellData");
wellDataCollection.createIndex(Indexes.ascending("timestamp", "tagName"));
MongoCollection<Document> gaugeOffCollection = database.getCollection("gaugeOff");
gaugeOffCollection.createIndex(Indexes.ascending("timestamp", "tagName"));
MongoCollection<Document> wellTestCollection = database.getCollection("wellTests");
wellTestCollection.createIndex(Indexes.ascending("testStartTime"));
MongoCollection<Document> fluidShotsCollection = database.getCollection("fluidShots");
fluidShotsCollection.createIndex(Indexes.ascending("timestamp"));
MongoCollection<Document> runStatusCollection = database.getCollection("runStatus");
runStatusCollection.createIndex(Indexes.ascending("timestamp"));
MongoCollection<Document> wellConfigCollection = database.getCollection("wellConfiguration");
wellConfigCollection.createIndex(Indexes.ascending("timestamp"));
}
public long getLastStrokeNum(){
@@ -159,7 +204,6 @@ public class Database {
public long newWellTest(WellTest inp){
MongoCollection<Document> collection = database.getCollection("wellTests");
Document doc = new Document("testStartTime", Date.from(inp.getTestStart().toInstant()))
.append("testHours", inp.getTestHours())
.append("testTotalBBL", inp.getTotalFluidBBL())
@@ -230,7 +274,6 @@ public class Database {
public long newRunStatus(String runStatus, String initiator){
MongoCollection<Document> collection = database.getCollection("runStatus");
Document doc = new Document("status", runStatus)
.append("initiator", initiator)
.append("timestamp", Date.from(ZonedDateTime.now().toInstant()));
@@ -258,7 +301,6 @@ public class Database {
public long storeWellSetup(Well thisWell){
MongoCollection<Document> collection = database.getCollection("wellConfiguration");
ArrayList<Document> taperArr = new ArrayList<Document>();
for (int i = 1; i <= thisWell.getNumTapers(); i++){
Document tap = new Document("length", thisWell.getRodLength(i))