MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Unterstützt Spring Data MongoDb den $filter-Array-Aggregationsoperator?

Sie können dieses Problem umgehen, indem Sie Ihren eigenen AggregationExpression bereitstellen .

ProjectionOperation agg = Aggregation.project() //

      .and(new AggregationExpression() {

        @Override
        public DBObject toDbObject(AggregationOperationContext context) {

          DBObject filterExpression = new BasicDBObject();
          filterExpression.put("input", "$answer_list");
          filterExpression.put("as", "answer");
          filterExpression.put("cond", new BasicDBObject("$eq2", Arrays.<Object> asList("$$answer.question", 2)));

          return new BasicDBObject("$filter", filterExpression);
        }
      }).as("profile");