db.createCollection("temp");
//temp컬렉션 생성
db.temp.ensureIndex({
hashCode: 1
},{
unique: true
});
//hashCode필드로 유니크 인덱스 생성
db.temp.update({
hashCode: {
$in: [1, 3]
}
},{
$inc: {
cnt: 10 //cnt필드 += 10
},$setOnInsert: { //문서가 종범이면 이 값에 따라 insert후 update
hashCode: ?
}
},{
upsert: true, //insert + update
multi: true
});
//temp컬렉션내 hashCode가 1 또는 3인 문서를 찾아 update 또는 insert
hashCode는 유니크 인덱스로 지정한 필드라 값이 필수.
유니크로 인덱싱하는 필드만을 기준으로 선택해서 갱신하니까 알아서 넣어줄 거라 기대했는데 직접 넣어야 됨;
근데 $setOnInsert에서 criteria파라메터 값을 참조할 방도가 종범;
몽고디비 멍청멍청
댓글 0