Ich arbeite an einem Projekt, wo ich Federdaten mongodb verwenden. Ich erstelle eine Mongo Abfrage wie folgt:Wie mongodb aggregierte Funktionen in Kriterien zu verwenden?
Query query = new Query();
Criteria one = Criteria.where(DB_FIELD_1).gt(1);
Criteria two = Criteria.where(DB_FIELD_2).lt(10);
Criteria final = new Criteria().andOperator(one,two);
query.addCriteria(final);
// after making the query, I am executing it using mongoTemplate
Nun, ich habe ein Datumsfeld mit Format YYYYMMDD. Ich möchte prüfen, ob der Monat = aktueller Monat ist. Wenn das Feld z. B. "20170501" lautet, ist der Monat des Datums (05) der aktuelle Monat (5. Mai). Wie extrahiere ich den Monatswert aus dem Datum und überprüfe diese Logik zusammen mit anderen Kriterien (eins und zwei)? Ich weiß, dass es $ Monat gibt, um den Monatswert vom Datum zu extrahieren. Aber ich weiß nicht, wie man die Aggregatfunktion in die Klasse "Criteria" einbindet. Mein Endergebnis sollte in etwa so aussehen:
Criteria final = new Criteria().andOperator(one,two,criteria to check month = current month);
query.addCriteria(final);
Datumsfeld als String in DB gespeichert ist? – pvpkiran
wird als Datum gespeichert – user3528213
Können Sie ein Beispieldokument aus Ihrer Sammlung zum Beitrag hinzufügen? und was ist deine spring mongo db version? Sie müssen für diesen einen Projektionsausdruck verwenden. – Veeram