모듈: Mongoid::Persistable::Upsertable
- 포함 항목:
- Mongoid::Persistable
- 다음에 정의됨:
- lib/mongoid/persistable/upsertable.rb
개요
문서를 업서트 하는 지속성 작업의 동작을 정의합니다.
인스턴스 메서드 요약 접기
-
#업서트(options = {}) ⇒ true
문서 의 업서트 를 수행합니다.
인스턴스 메서드 세부 정보
#업서트(options = {}) ⇒ true
문서 의 업서트 를 수행합니다. 문서 가 데이터베이스 에 존재하지 않으면 mongo 는 새 문서를 삽입하고, 그렇지 않으면 필드를 기존 문서 의 새 값으로 덮어씁니다.
대체 옵션이 true이면 지정되지 않은 속성이 삭제되고 false이면 지정되지 않은 속성이 유지됩니다. Mongoid 9 에서 대체 옵션의 기본값은 false 입니다.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# 파일 'lib/mongoid/persistable/upsertable.rb', 줄 36 def 업서트( = {}) prepare_upsert() do 만약 [:replace] 만약 [:set_on_insert] 올리다 ArgumentError, ":set_on_insert를 `replace: true`로 지정할 수 없습니다." end 컬렉션.찾기(atomic_selector).replace_one( as_attributes, upsert: true, 세션: _session) other attrs = { "$set" => as_attributes } attrs["$setOnInsert"] = [:set_on_insert] 만약 [:set_on_insert] 컬렉션.찾기(atomic_selector).update_one( attrs, upsert: true, 세션: _session) end end end |