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파라메터 값을 참조할 방도가 종범;


몽고디비 멍청멍청