홈>
다음 집계 파이프 라인 실행 :
public void getMostLikedItems () {
UnwindOperation unwind = Aggregation.unwind("favoriteItems");
GroupOperation group = Aggregation.group("favoriteItems").count().as("likes");
SortOperation sort = Aggregation.sort(Sort.Direction.DESC, "likes");
Aggregation aggregation = newAggregation(unwind, group, sort);
DBObject result = mongoTemplate.aggregate(aggregation, "users", LikedItem.class).getRawResults();
}
다음 예외가 발생합니다 :
com.mongodb.MongoCommandException: Command failed with error 9: 'The 'cursor' option is required, except for aggregate with the explain argument' on server localhost:27017. The full response is { "ok" : 0.0, "errmsg" : "The 'cursor' option is required, except for aggregate with the explain argument", "code" : 9, "codeName" : "FailedToParse" }
커서 옵션이 무엇을 의미하는지 이해하지 못합니다. 이 옵션은 어디에 구성해야합니까?
수정다음은 샘플 사용자 문서입니다
{
"_id": "5a6df13552f42a34dcca9aa6",
"username": "user1",
"password": "$2a$10$p0OXq5PPa41j1e4iPcGZHuWjoKJ983sieS/ovFI.cVX5Whwj21WYi",
"favoriteItems": [
{
"_id": "5a0c6b2dfd3eb67969316d6d",
"name": "item1",
"city": "Rabat"
},
{
"_id": "5a0c680afd3eb67969316d0b",
"name": "item2",
"city": "Rabat"
}
]
}
- 답변 # 1
- 답변 # 2
Aggregation aggregation = newAggregation(unwind, group).withOptions(newAggregationOptions().cursor(new Document()).build());
호환되지 않는 버전의 MongoDB 및 Spring-data-mongo를 사용할 때 스프링 데이터에서 이러한 유형의 오류가 발생했습니다.
설명, 커서 인수로 rawResults를 얻을 수 있습니다.
'The 'cursor' option is required, except for aggregate with the explain argument'
코멘트가있는 인수로 전달하면 rawResult에 결과가 표시되지만 지정된 outType.class에 매핑되지 않습니다.
맵핑 된 결과를 얻으려면 MongoDb 버전에 따라 스프링 데이터 버전의 올바른 종속성을 다운로드해야합니다.
수정
Spring 버전 5.0.3및Spring-data-mongoDB 버전 2.0.3을 사용했습니다. 잘 작동하고 있습니다.
Aggregation aggregation = Aggregation.newAggregation(group).withOptions( new AggregationOptions(allowDiskUse, explain, cursor)); //try with .withOptions( new AggregationOptions(true,false,new Document()));
관련 자료
- c# - mongodb 업그레이드 후 커서 옵션이 필요합니다
- javascript - 동적 키를 사용하여 mongodb 집계 결과 재구성
- Mongodb aggregation lookup query - mongodb 집계 조회 쿼리 - 모든 하위 문서를 반환
- mongodb 집계 - $addtoset 및 $sort
- mongoose - Mongodb 집계-$ne과 $ne
- MongoDB 집계, 존재하지 않는 고유 한 이중 필드 찾기
- optimization - Mongodb $count 집계가 너무 느려서 1mill 이상을 사용합니다 DB의 문서
- MongoDB Compass에서 데이터베이스를 생성/표시하지 않는 Spring Boot 응용 프로그램
- arrays - mongodb는 집계에서 $count를 사용합니다
- 여러 필드를 가진 스프링 데이터 mongoDB 푸시 작업이 작동하지 않습니다
- 스프링 데이터 mongodb가 모든 테스트 방법 전에 createIndexes를 실행하도록하는 방법은 무엇입니까?
- javascript - $match의 집계 쿼리는 MongoDB Compass에서 작동하지만 Nodejs 앱에서는 작동하지 않습니다
- 배열 및 조회를 통한 mongodb 집계
- java - MongoDB 및 Spring Boot의 호스트 이름을 docker-composeyml에 정의하는 방법
- java - 스프링 부트 - 몬 고브 :다른 필드를 기준으로 자동 증분 필드
- mongoDb에서 집계 결과를 다른 열의 평균 및 합계와 함께 추가해야합니다
- javascript - Kotlin/JS에서 MongoDB 집계를 작성하는 방법
- node.js - Mongodb 집계 구별, 평균 및 두 컬렉션 사이의 그룹 별 합계
- node.js - "몬 고브 집합체와 '부모 대 자녀'관계를 얻는 방법 "
- mongodb 집계 - 출력에서 _idday, _id, month, _idyear 연결
관련 질문
- Java에서 gridF에 대한 읽기 기본 설정을 설정하는 방법은 무엇입니까?
- java : 일부 필드에 mongoDB null 값을 추가하는 것을 피할 수 있습니까?
- java : .dao.DataIntegrityViolationException: 제한된 컬렉션에서 문서의 크기를 변경할 수 없습니다: 311 != 333;
- MongoDb 날짜 오류 Java
- java : changeLogFile은 Liquibase에서 오류를 지정해야 합니다.
- java : 스칼라 2.9 브리지 메서드
- javascript : 반응 프런트 엔드에 표시되지 않는 저장된 데이터 값
- java : YAML 개체의 @ConditionalOnProperty
- java : 블록이 false를 평가하는 방법은 무엇입니까?
- java : Rest API, 다른 MediaType 추가, 기본 응답
문서에서
와이즈 비즈batchSize
와 함께 Spring Mongo 2.x 버전기본 배치 크기로