如何将mongo shell查询转换为spring-data查询?

时间:2019-07-15 18:42:34

标签: mongodb aggregation-framework spring-data-mongodb

我有一个像波纹管这样的mongo查询。结果就是我的愿望。但是当我要将其转换为spring-data查询时,说无效的过滤器引用

db.mycollection.aggregate([
 { "$match" : {--} }, 
 { "$sort" : { --} }, 
 { "$group" : { "_id" : "$sender", "senders" : { "$addToSet" : { "id" : "$_id", "seen" : "$seen" } }   } },
 {  "$project": {
  "_id":0,
  "total" : {
    "$size": {
    "$filter": {"input": "$senders","as": "e",
      "cond": {"$eq": ["$$e.seen",false]}
     }
    }
   }
  }
 }
]);

我试图将其转换为spring-data查询的是:

Aggregation aggregation = Aggregation.newAggregation(
    match(Criteria
            .where("receiver").is(receiver)),
    sort(Sort.by("date").descending()),
    group("sender")
            .addToSet(new BasicDBObjectBuilder().add("id", "$_id").add("seen", "$seen").get()).as("senders"),
    project()
            .and("sender").previousOperation()
            .and(ArrayOperators.Filter.filter("senders")
                    .as("s")
                    .by(ComparisonOperators.Eq.valueOf("s.seen")
                            .equalToValue(false))).size()
            .as("total")
            .and("....")
       );

我的错是什么,我该如何解决?

0 个答案:

没有答案