私はオーダーコレクションを持っており、orderLastStatusChangeDatetime、estimatedDeliveryDatetimeおよびorderPriceはオーダーコレクションの名前です。 orderPriceの合計を取得する必要があります。ここで、orderLastStatusChangeDatetimeはestimatedDeliveryDatetime以下です。以下のクエリを使用して合計レコードを取得しました。spring mongodb集計2つのフィールドを比較して1つの列の合計を得る
Criteria criteria = new Criteria() {
@Override
public DBObject getCriteriaObject() {
DBObject obj = new BasicDBObject();
obj.put("$where", "this.orderLastStatusChangeDatetime <= this.estimatedDeliveryDatetime");
return obj;
}
};
Query query = new Query();
query.addCriteria(criteria);
totalOrder = (int) mongoTemplate.count(query,ORDERS_COLLECTION_NAME);
しかし、私は注文価格の合計を取得する必要があります。私は集計マッチで同じ基準を使用しています。しかし、エラーが発生する "コマンドはエラー16395で失敗しました: '例外:$は$一致集計式の内部では使用できません'"
おかげで...しかし、私はエラーが--- – Pankaj
java.lang.IllegalArgumentExceptionが取得しています:サポートされていない要素:ORG .springframework.data.mongodb.core.spel.OperatorNode @ 542dba3fタイプ:class org.springframework.data.mongodb.core.spel.OperatorNodeおそらくSpEL式に構文エラーがあります。 – Pankaj
ようこそ。私はこれを1.10.1 spring mongoバージョンでうまく実行することができました。あなたは私にコードを表示することができますし、あなたはどのバージョンを使用していますか?これはサーバー '{" $ project ":{" orderPrice ":1、" cmp ":{" $ lte ":[" $ orderLastStatusChangeDatetime "、" $ estimatedDeliveryDatetime "]}}}、{クエリ – Veeram