모듈: Mongoid::Persistable::Pushable
- 확장자:
- ActiveSupport::Concern
- 포함 항목:
- Mongoid::Persistable
- 다음에 정의됨:
- lib/mongoid/persistable/pushable.rb
개요
$push 및 $addToSet 작업에 대한 동작을 정의합니다.
인스턴스 메서드 요약 접기
-
#add_to_set(adds) ⇒ 문서
값이 배열 에 아직 존재하지 않는 경우에만 배열에 단일 값을 추가합니다.
-
#push(푸시) ⇒ 문서
단일 값 또는 여러 값을 배열에 푸시합니다.
인스턴스 메서드 세부 정보
#add_to_set(adds) ⇒ 문서
값이 배열 에 아직 존재하지 않는 경우에만 배열에 단일 값을 추가합니다.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# 파일 'lib/mongoid/persistable/pushable.rb', 줄 20 def add_to_set(추가합니다.) prepare_atomic_operation do |ops| process_atomic_operations(추가합니다.) do |필드, value| 기존 = send(필드) || 속성[필드] 만약 기존.nil? 속성[필드] = [] # 속성에서 값을 읽습니다. # https://jira.mongodb.org/browse/MONGOID-4874 기존 = 속성[필드] end values = [ value ].flatten(1) values.각 do |val| 기존.push(val) 하지 않는 한 기존.포함?(val) end ops[atomic_attribute_name(필드)] = { "$each" => values } end { "$addToSet" => ops } end end |
#push(푸시) ⇒ 문서
단일 값 또는 여러 값을 배열에 푸시합니다.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# 파일 'lib/mongoid/persistable/pushable.rb', 줄 51 def push(푸시) prepare_atomic_operation do |ops| process_atomic_operations(푸시) do |필드, value| 기존 = send(필드) || 시작 속성[필드] ||= [] 속성[필드] end values = [ value ].flatten(1) values.각{ |val| 기존.push(val) } ops[atomic_attribute_name(필드)] = { "$each" => values } end { "$push" => ops } end end |