J'ai une collection MongoDB qui contient 6 champs document unique, par exemple:
{
"_id" : ObjectId("59d0f2382043f72a443e6ec0"),
"TranDate" : "2017-07-25T18:01:12+08:00",
"TranCode" : "ActFLA_A01_01_",
"TranValue" : "812.34",
"Seq" : "71",
"Configuration" : "10"
},
{
"_id" : ObjectId("59d0f2332043f72a443e1397"),
"TranDate" : "2017-07-25T18:01:12+08:00",
"TranCode" : "ActFLA_A01_01_",
"TranValue" : "87.34",
"Seq" : "71",
"Configuration" : "10"
},
{
"_id" : ObjectId("59d0f2332043f72a443e1397"),
"TranDate" : "2017-07-25T18:01:12+08:00",
"TranCode" : "ActFLA_A01_01_",
"TranValue" : "828.34",
"Seq" : "71",
"Configuration" : "10"
},
{
"_id" : ObjectId("59d0f2342043f72a443e16be"),
"TranDate" : "2017-07-25T00:45:02+08:00",
"TranCode" : "ActFLA_A01_01_",
"TranValue" : "0.00",
"Seq" : "2",
"Configuration" : "0"
}
Voici mon code pour la requête:
Pattern regex = Pattern.compile("^2017-07-25");
Pattern regex2 = Pattern.compile("^ActFLA_A");
Pattern regex3 = Pattern.compile("^10");
DBObject clause1 = new BasicDBObject("TranDate", regex);
DBObject clause2 = new BasicDBObject("TranCode", regex2);
DBObject clause3 = new BasicDBObject("Configuration", regex3);
BasicDBList and = new BasicDBList();
and.add(clause1);
and.add(clause2);
and.add(clause3);
DBObject query = new BasicDBObject("$and", and);
Je suis obtenir un seul document mais j'attends 3 Documents qui contiennent (Champs) TranDate, TranCode, TranSeq et Configuration avec la même valeur sauf TranValue.
Je ne sauverait pas les dates sous forme de chaîne. Cela rend le filtrage de base de données plus difficile que nécessaire. Quoi qu'il en soit votre code est défectueux car les clauses ne sont jamais ajoutées à 'BasicDBList and'. Et vous devez ajouter le code que vous utilisez pour récupérer les correspondances. Peut être le problème est là. – JMax