2012-08-27 3 views
2

나는 AA 모델 문서에 포함 된 많은 항목 "항목"을 가지고 "입력"이 있습니다Mongoid 포함 된 문서 추가/최소로 제거하면 데이터베이스에 조회수

class Entry 
    embeds_many :items, cascade_callbacks: true 
    ... 
end 

문제 난입니다 무리를 이동해야 일부 항목 삭제, 다른 항목 추가 및 다른 항목 간 이동. 그것은이 Entry.items에 내가 할 모든 작업처럼 보인다 좋아 :

entry.items << item or entry.items.delete(i) 

는 자체 데이터베이스 쓰기가 발생합니다. 그리고 만약 내가 매우 비싸 보이는 많은 변화를 만들고있어. mongoid에게 항목을 추가하고, 제거하고, 로컬로 이동시키고, 모든 작업이 완료 될 때만 단일 entry.save를 보내도록 지시하는 방법이 있습니까? 데이터베이스에 쓰기? 수행하여 항목의 배열을 교체

답변

0

:

entry.items = new_items 

는 대부분의 데이터베이스 효율적이다. 하지만 그것은 버그가있는 것으로 밝혀졌습니다. 최신 버전의 몽고 이드를 가지고 있는지 확인하고 entry.changed가 있다면 entry.save를 수행하십시오. || entry.new_record? 항목을 수정할 때 위의 항목을 저장하지 않기 때문입니다.