모듈: Mongoid::Positional

포함 항목:
연관 관계::Embedded::Batchable, Contextual::Memory, 지속 가능
다음에 정의됨:
lib/mongoid/positional.rb

개요

이 모듈은 업데이트 선택기를 취하고 적절한 경우 $ 위치 연산자 의 인덱스를 전환하는 역할을 합니다.

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#위치 적으로(선택기, 연산, 처리됨 = {}) ⇒ 해시

참고:

위치 연산자 사용해야 하는 시점을 정확하게 알 수 있는 유일한 경우는 무언가를 지속할 때뿐입니다. 따라서 선택기를 통해 전송 중인 위치 연산자 실제로 사용할 수 있는지 여부를 알 수 있습니다. 예시 를 들어 선택기가 { "_id" => 1 }인 경우 일치하는 항목이 없으므로 내장된 문서를 업데이트하는 데 위치 연산자 사용할 수 없습니다. 셀렉터가 진행하는 레벨의 깊이와 id 값이 nil이 아닌 경우.

제공된 선택기와 원자 조작을 수행하고 필요할 때 내장된 문서의 인덱스를 위치 연산자 로 바꿉니다.

예시:

작업을 처리합니다.

positionally(
  { "_id" => 1, "addresses._id" => 2 },
  { "$set" => { "addresses.0.street" => "hobrecht" }}
)

매개변수:

  • 선택기 (해시)

    선택기.

  • 연산 (해시)

    업데이트 작업.

  • 처리됨 (해시) (기본값: {})

    처리된 업데이트 작업입니다.

반환합니다:

  • (해시)

    새로운 작업.



31
32
33
34
35
36
37
# 파일 'lib/mongoid/positional.rb', 줄 31

def 위치적으로(선택기, 연산, 처리됨 = {})
  반환 연산 만약 선택기.size == 1 || 선택기.values.어떤? { |val| val.nil? }

   = 선택기..map { |m| m.sub('._id', '') } - [ '_id' ]
   = .sort_by { |s| s.분량 * -1 }
  process_operations(, 연산, 처리됨)
end