Database/mongoDB
[MongoDB] 필드값 업데이트
데브포유
2017. 3. 31. 14:02
반응형
product 콜렉션의 price 필드를 업데이트하는 예제
1. 전체 document의 price를 일괄 업데이트
=> db.product.update( {}, {$set:{price:1000.5}}, {multi:true})
2. price 값에서 소수점 제거
=> db.product.find().forEach( function(data) {
db.product.update( {_id:data._id}, {$set:{price: Math.round( data.price)}} )
});
* 원래 필드값을 참조해서 업데이트 하려면 2번의 경우처럼 좀 복잡하게 해야 합니다.
앞으로 현재값을 가리키는 연산자가 추가 되었으면 더 편할 듯 합니다.
2번의 경우를 자바로 구현하면 아래와 같습니다.
==> 콜렉션까지 가지고 오는 것은 생략
product.find().forEach(new Block<Document>() {
public void apply(Document document) {
BasicDBObject obj = (BasicDBObject)JSON.parse( document.toJson());
product.updateOne( eq("_id", obj.get("_id")), set("price", Math.round( obj.getInt("price"))) );
}
});
반응형