2013-07-03 4 views
2

일부 표현식을 사용하여 필드를 업데이트해야합니다. DBObject query이 주어지면 주어진 필드를 인수로 value으로 나누거나 나눌 수 있습니까?mongodb : java : 기존 값으로 표현식을 사용하여 MongoDB에서 필드를 업데이트하는 방법

어떻게 자바에서이 같은 작업 일을 수행하는 함수를 작성할 수 있지만 : 그것은 "$set"find() 또는 findAndModify()를 사용하여 가능

function(DBObject queryObject, String fieldToUpdate, Double argumentValue) { 
    collection.find(queryObject).forEach(function(e) { 
     // update field given by input argument "fieldToUpdate", something like.. 
     // e.put(fieldToUpdate, e.get(fieldToUpdate)/argumentValue); ?? 
     collection.save(e); 
    }); 
} 

인가? 그렇다면 existingValue/argumentValue과 같은 표현식을 사용하여 기존 값을 업데이트하는 방법은 무엇입니까?

답변

1

현재 MongoDB에서는 필드의 기존 값에 따라 필드 값을 업데이트 할 수 없습니다.

하여 MongoDB에서
UPDATE foo SET field1 = field1/2; 

, 당신은 응용 프로그램에서이 작업을 수행해야하지만 그때 읽고해야하므로이 원자 작업이 더 이상 알고있을 것입니다 : 즉, 다음과 같은 SQL을 수행 할 수 없습니다 쓰다.

관련 문제