227.6.2.3. update
컬렉션에서 하나 이상의 레코드를 업데이트합니다. 정확히 2개의 요소를 포함하는 IN 메시지 본문으로 List<DBObject>가 필요합니다.
- 요소 1 (index 0) ECDHE 필터 쿼리 ECDSA는 일반적인 쿼리 개체와 동일한 영향을 받을 개체를 결정합니다.
- 요소 2 (index 1) 일치 오브젝트의 업데이트 규칙을 업데이트합니다. MongoDB 의 모든 수정자를 지원합니다.
Multiupdates . 기본적으로 MongoDB는 여러 오브젝트가 필터 쿼리와 일치하는 경우에도 1개의 오브젝트만 업데이트합니다. MongoDB에 일치하는 모든 레코드를 업데이트하도록 지시하려면 CamelMongoDbMultiUpdate
IN 메시지 헤더를 true
로 설정합니다.
키 CamelMongoDbRecordsAffected
헤더가 반환되고(MongoDbConstants.RECORDS_AFFECTED
상수)로 업데이트된 레코드 수( WriteResult.getN()
에서 분리됨)가 반환됩니다.
다음 IN 메시지 헤더를 지원합니다.
헤더 키 | 빠른 일정 | description (MongoDB API doc에서 추출) | 예상 유형 |
---|---|---|---|
|
| 업데이트가 모든 오브젝트 일치에 적용되는 경우. 자세한 내용은 http://www.mongodb.org/display/DOCS/Atomic+Operations | 부울/Boolean |
|
| 데이터베이스가 없는 경우 해당 요소를 만들어야 하는 경우If the database should create the element if it does not exist. | 부울/Boolean |
예를 들어, 다음 명령은 "scientist" 필드의 값을 "Darwin"으로 설정하여 filterField 필드가 true인 모든 레코드를 업데이트합니다.
// route: from("direct:update").to("mongodb:myDb?database=science&collection=notableScientists&operation=update"); DBObject filterField = new BasicDBObject("filterField", true); DBObject updateObj = new BasicDBObject("$set", new BasicDBObject("scientist", "Darwin")); Object result = template.requestBodyAndHeader("direct:update", new Object[] {filterField, updateObj}, MongoDbConstants.MULTIUPDATE, true);