쿼리

@dynamicMemberLookup
public struct Query<T>

Query 형식 안전 쿼리 조건자를 만드는 데 사용되는 클래스입니다.

Query 을(를) 사용하면 Swift 스타일의 쿼리 표현식을 만든 다음 NSPredicate 로 구성할 수 있습니다. Query 클래스는 직접 인스턴스화해서는 안 되며 쿼리 표현식을 인수로 사용하는 클로저 내에서 매개변수로만 사용해야 합니다. 예:

public func where(_ query: ((Query<Element>) -> Query<Element>)) -> Results<Element>

그러면 위의 함수를 다음과 같이 사용합니다.

let results = realm.objects(Person.self).query {
   $0.name == "Foo" || $0.name == "Bar" && $0.age >= 21
}

지원되는 술어 유형

Prefix

  • NOT ! swift let results = realm.objects(Person.self).query { !$0.dogsName.contains("Fido") || !$0.name.contains("Foo") }

비교

  • Equals ==
  • 같지 않음 !=
  • 보다 큼 >
  • 보다 작은 <
  • GreaterThanOrEqual >=
  • LessThanOrEqual <=
  • between .contains(_ range:)

컬렉션

  • .contains(_ element:)
  • between .contains(_ range:)

Map

  • @allKeys .keys
  • @allValues .values

복합

  • 개인정보 정책에 &&
  • 또는 ||

collection 애그리게이션

  • @avg .avg
  • @min .min
  • @max .max
  • @sum .sum
  • @count .count swift let results = realm.objects(Person.self).query { !$0.dogs.age.avg >= 0 || !$0.dogsAgesArray.avg >= 0 }

기타

  • NOT !
  • subquery ($0.fooList.intCol >= 5).count > n

  • collection에 값이 있는지 확인합니다.

    선언

    Swift

    public func `in`<U>(_ collection: U) -> Query<Bool> where T == U.Element, U : Sequence

쿼리 구성

  • 테스트 목적으로만 사용됩니다. 직접 사용하지 마세요.

    선언

    Swift

    public static func _constructForTesting() -> Query<T>
  • 수반되는 인수를 사용하여 NSPredicate 호환 문자열을 생성합니다.

    참고

    이는 내부용으로만 사용되며 테스트 목적으로 노출됩니다.

    선언

    Swift

    public func _constructPredicate() -> (String, [Any])

T == AnyRealmValue에서 사용 가능

T: RealmCollection에서 사용 가능

  • 컬렉션에 있는 객체의 개수를 쿼리합니다.

    선언

    Swift

    public var count: Query<Int> { get }
  • 이 collection에 요소가 있는지 확인합니다.

    선언

    Swift

    public func contains(_ value: T.Element) -> Query<Bool>
  • 지정된 배열에 포함된 요소가 collection에 있는지 확인합니다.

    선언

    Swift

    public func containsAny<U>(in collection: U) -> Query<Bool> where U : Sequence, T.Element == U.Element

T: RealmCollection, T.Element: Comparable에서 사용 가능

  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: Range<T.Element>) -> Query<Bool>
  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: ClosedRange<T.Element>) -> Query<Bool>

T: RealmCollection, T.Element: OptionalProtocol, T.Element.Wrapped: Comparable에서 사용 가능

  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: Range<T.Element.Wrapped>) -> Query<Bool>
  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: ClosedRange<T.Element.Wrapped>) -> Query<Bool>

T: RealmCollection, T.Element.PersistedType: _QueryNumeric에서 사용 가능

  • min

    collection의 최소값을 반환합니다.

    선언

    Swift

    public var min: Query<T.Element> { get }
  • max

    collection의 최대값을 반환합니다.

    선언

    Swift

    public var max: Query<T.Element> { get }
  • avg

    collection의 평균을 반환합니다.

    선언

    Swift

    public var avg: Query<T.Element> { get }
  • sum

    collection에 있는 모든 값의 합계를 반환합니다.

    선언

    Swift

    public var sum: Query<T.Element> { get }

T: RealmKeyedCollection에서 사용 가능

  • 지정된 배열에 포함된 요소가 지도의 값에 존재하는지 확인합니다.

    선언

    Swift

    public func containsAny<U>(in collection: U) -> Query<Bool> where U : Sequence, T.Value == U.Element
  • 이 collection에 요소가 있는지 확인합니다.

    선언

    Swift

    public func contains(_ value: T.Value) -> Query<Bool>
  • 지도의 모든 값에 대한 쿼리를 허용합니다.

    선언

    Swift

    public var values: Query<T.Value> { get }

T: RealmKeyedCollection, T.Key == String에서 사용 가능

  • Map 의 모든 키에 대한 쿼리를 허용합니다.

    선언

    Swift

    public var keys: Query<String> { get }

T: RealmKeyedCollection, T.Value: Comparable에서 사용 가능

  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: Range<T.Value>) -> Query<Bool>
  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: ClosedRange<T.Value>) -> Query<Bool>

T: RealmKeyedCollection, T.Value: OptionalProtocol, T.Value.Wrapped: Comparable에서 사용 가능

  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: Range<T.Value.Wrapped>) -> Query<Bool>
  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: ClosedRange<T.Value.Wrapped>) -> Query<Bool>

T: RealmKeyedCollection, T.Value.PersistedType: _QueryNumeric에서 사용 가능

  • min

    키 지정 collection의 최소값을 반환합니다.

    선언

    Swift

    public var min: Query<T.Value> { get }
  • max

    키 지정 collection의 최대값을 반환합니다.

    선언

    Swift

    public var max: Query<T.Value> { get }
  • avg

    키순 collection의 평균을 반환합니다.

    선언

    Swift

    public var avg: Query<T.Value> { get }
  • sum

    키순 collection에 있는 모든 값의 합계를 반환합니다.

    선언

    Swift

    public var sum: Query<T.Value> { get }

T: RealmKeyedCollection에서 사용 가능

  • 키 지정 collection에 있는 모든 값의 개수를 반환합니다.

    선언

    Swift

    public var count: Query<Int> { get }

T: PersistableEnum, T.RawValue: _RealmSchemaDiscoverable에서 사용 가능

  • 열거형 자체가 아닌 열거형의 원시 값을 쿼리합니다.

    이는 열거형이 아닌 원시 값으로 표현될 수 있는 쿼리를 작성하는 데 사용할 수 있습니다. 예를 들어 접두사가 열거형의 멤버가 아닌 문자열 열거형에서 .starts(with:) 를 쿼리할 수 있습니다.

    선언

    Swift

    public var rawValue: Query<T.RawValue> { get }

T: OptionalProtocol, T.Wrapped: PersistableEnum, T.Wrapped.RawValue: _RealmSchemaDiscoverable에서 사용 가능

  • 열거형 자체가 아닌 열거형의 원시 값을 쿼리합니다.

    이는 열거형이 아닌 원시 값으로 표현될 수 있는 쿼리를 작성하는 데 사용할 수 있습니다. 예를 들어 접두사가 열거형의 멤버가 아닌 문자열 열거형에서 .starts(with:) 를 쿼리할 수 있습니다.

    선언

    Swift

    public var rawValue: Query<T.Wrapped.RawValue?> { get }

T: RealmCollection, T.Element: PersistableEnum, T.Element.RawValue: RealmCollectionValue에서 사용 가능

  • collection에 있는 열거형의 원시 값을 쿼리합니다.

    이는 열거형이 아닌 원시 값으로 표현될 수 있는 쿼리를 작성하는 데 사용할 수 있습니다. 예를 들어 접두사가 열거형의 멤버가 아닌 문자열 열거형에서 .starts(with:) 를 쿼리할 수 있습니다.

    선언

    Swift

    public var rawValue: Query<AnyRealmCollection<T.Element.RawValue>> { get }

T: RealmKeyedCollection, T.Value: PersistableEnum, T.Value.RawValue: RealmCollectionValue에서 사용 가능

  • collection에 있는 열거형의 원시 값을 쿼리합니다.

    이는 열거형이 아닌 원시 값으로 표현될 수 있는 쿼리를 작성하는 데 사용할 수 있습니다. 예를 들어 접두사가 열거형의 멤버가 아닌 문자열 열거형에서 .starts(with:) 를 쿼리할 수 있습니다.

    선언

    Swift

    public var rawValue: Query<Map<T.Key, T.Value.RawValue>> { get }

T: RealmCollection, T.Element: OptionalProtocol, T.Element.Wrapped: PersistableEnum, T.Element.Wrapped.RawValue: _RealmCollectionValueInsideOptional에서 사용 가능

  • collection에 있는 열거형의 원시 값을 쿼리합니다.

    이는 열거형이 아닌 원시 값으로 표현될 수 있는 쿼리를 작성하는 데 사용할 수 있습니다. 예를 들어 접두사가 열거형의 멤버가 아닌 문자열 열거형에서 .starts(with:) 를 쿼리할 수 있습니다.

    선언

    Swift

    public var rawValue: Query<AnyRealmCollection<T.Element.Wrapped.RawValue?>> { get }

T: RealmKeyedCollection, T.Value: OptionalProtocol, T.Value.Wrapped: PersistableEnum, T.Value.Wrapped.RawValue: _RealmCollectionValueInsideOptional에서 사용 가능

  • collection에 있는 열거형의 원시 값을 쿼리합니다.

    이는 열거형이 아닌 원시 값으로 표현될 수 있는 쿼리를 작성하는 데 사용할 수 있습니다. 예를 들어 접두사가 열거형의 멤버가 아닌 문자열 열거형에서 .starts(with:) 를 쿼리할 수 있습니다.

    선언

    Swift

    public var rawValue: Query<Map<T.Key, T.Value.Wrapped.RawValue?>> { get }

T: _HasPersistedType에서 사용 가능

  • 값 자체가 아닌 값의 지속성 값을 쿼리합니다.

    이는 지속 가능한 값에 대한 범위 쿼리와 같이 지속형 유형에서는 표현할 수 있지만 유형 자체에서는 표현할 수 없는 쿼리를 작성하거나 매핑된 유형으로 변환할 수 없는 값을 쿼리하는 데 사용할 수 있습니다.

    PersistableEnum, CustomPersistable 또는 FailableCustomPersistable을 준수하지 않는 유형의 경우 이는 유용하지 않습니다.

    선언

    Swift

    public var persistableValue: Query<T.PersistedType> { get }

T: RealmCollection에서 사용 가능

  • 값 자체가 아닌 collection에 있는 값의 지속성 값을 Query합니다.

    이는 지속 가능한 값에 대한 범위 쿼리와 같이 지속형 유형에서는 표현할 수 있지만 유형 자체에서는 표현할 수 없는 쿼리를 작성하거나 매핑된 유형으로 변환할 수 없는 값을 쿼리하는 데 사용할 수 있습니다.

    PersistableEnum, CustomPersistable 또는 FailableCustomPersistable을 준수하지 않는 유형의 경우 이는 유용하지 않습니다.

    선언

    Swift

    public var persistableValue: Query<AnyRealmCollection<T.Element.PersistedType>> { get }

T: RealmKeyedCollection에서 사용 가능

  • 값 자체가 아닌 collection에 있는 값의 지속성 값을 Query합니다.

    이는 지속 가능한 값에 대한 범위 쿼리와 같이 지속형 유형에서는 표현할 수 있지만 유형 자체에서는 표현할 수 없는 쿼리를 작성하거나 매핑된 유형으로 변환할 수 없는 값을 쿼리하는 데 사용할 수 있습니다.

    PersistableEnum, CustomPersistable 또는 FailableCustomPersistable을 준수하지 않는 유형의 경우 이는 유용하지 않습니다.

    선언

    Swift

    public var persistableValue: Query<Map<T.Key, T.Value.PersistedType>> { get }

T: Comparable에서 사용 가능

  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: Range<T>) -> Query<Bool>
  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: ClosedRange<T>) -> Query<Bool>

T: _HasPersistedType, T.PersistedType: _QueryString에서 사용 가능

  • 컬렉션에서 지정된 값과 동일한 모든 요소가 있는지 확인합니다. ?* 은 와일드카드 문자로 허용되며, 여기서 ? 는 1개 문자와 일치하고 * 는 0개 이상의 문자와 일치합니다.

    선언

    Swift

    public func like(_ value: T, caseInsensitive: Bool = false) -> Query<Bool>

    매개변수

    value

    사용된 값입니다.

    caseInsensitive

    true 대소문자를 구분하지 않는 검색인 경우.

  • 컬렉션에서 지정된 값과 동일한 모든 요소가 있는지 확인합니다. ?* 은 와일드카드 문자로 허용되며, 여기서 ? 는 1개 문자와 일치하고 * 는 0개 이상의 문자와 일치합니다.

    선언

    Swift

    public func like<U>(_ column: Query<U>, caseInsensitive: Bool = false) -> Query<Bool>

    매개변수

    value

    사용된 값입니다.

    caseInsensitive

    true 대소문자를 구분하지 않는 검색인 경우.

T: _HasPersistedType, T.PersistedType: _QueryBinary에서 사용 가능

  • 지정된 값을 포함하는 이 collection의 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ value: T, options: StringOptions = []) -> Query<Bool>

    매개변수

    value

    사용된 값입니다.

    options

    검색 쿼리를 평가하는 데 사용되는 옵션 세트입니다.

  • 이 열에 다른 열의 값이 포함되어 있는지 비교합니다.

    선언

    Swift

    public func contains<U>(_ column: Query<U>, options: StringOptions = []) -> Query<Bool> where U : _Persistable, U.PersistedType : _QueryBinary

    매개변수

    column

    다른 열입니다.

    options

    검색 쿼리를 평가하는 데 사용되는 옵션 세트입니다.

  • 지정된 값으로 시작하는 이 collection의 모든 요소를 확인합니다.

    선언

    Swift

    public func starts(with value: T, options: StringOptions = []) -> Query<Bool>

    매개변수

    value

    사용된 값입니다.

    options

    검색 쿼리를 평가하는 데 사용되는 옵션 세트입니다.

  • 이 열이 다른 열의 값으로 시작하는지 비교합니다.

    선언

    Swift

    public func starts<U>(with column: Query<U>, options: StringOptions = []) -> Query<Bool>

    매개변수

    column

    다른 열입니다.

    options

    검색 쿼리를 평가하는 데 사용되는 옵션 세트입니다.

  • 지정된 값으로 끝나는 이 컬렉션의 모든 요소를 확인합니다.

    선언

    Swift

    public func ends(with value: T, options: StringOptions = []) -> Query<Bool>

    매개변수

    value

    사용된 값입니다.

    options

    검색 쿼리를 평가하는 데 사용되는 옵션 세트입니다.

  • 이 열이 다른 열의 값으로 끝나는지 비교합니다.

    선언

    Swift

    public func ends<U>(with column: Query<U>, options: StringOptions = []) -> Query<Bool>

    매개변수

    column

    다른 열입니다.

    options

    검색 쿼리를 평가하는 데 사용되는 옵션 세트입니다.

  • 이 collection에서 지정된 값과 같은 모든 요소가 있는지 확인합니다.

    선언

    Swift

    public func equals(_ value: T, options: StringOptions = []) -> Query<Bool>

    매개변수

    value

    사용된 값입니다.

    options

    검색 쿼리를 평가하는 데 사용되는 옵션 세트입니다.

  • 이 열이 지정된 다른 열의 값과 같은지 비교합니다.

    선언

    Swift

    public func equals<U>(_ column: Query<U>, options: StringOptions = []) -> Query<Bool>

    매개변수

    column

    다른 열입니다.

    options

    검색 쿼리를 평가하는 데 사용되는 옵션 세트입니다.

  • collection에서 지정된 값과 같지 않은 모든 요소가 있는지 확인합니다.

    선언

    Swift

    public func notEquals(_ value: T, options: StringOptions = []) -> Query<Bool>

    매개변수

    value

    사용된 값입니다.

    options

    검색 쿼리를 평가하는 데 사용되는 옵션 세트입니다.

  • 이 열이 지정된 다른 열의 값과 같지 않은지 비교합니다.

    선언

    Swift

    public func notEquals<U>(_ column: Query<U>, options: StringOptions = []) -> Query<Bool>

    매개변수

    column

    다른 열입니다.

    options

    검색 쿼리를 평가하는 데 사용되는 옵션 세트입니다.

T: OptionalProtocol, T.Wrapped: Comparable에서 사용 가능

  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: Range<T.Wrapped>) -> Query<Bool>
  • 컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.

    선언

    Swift

    public func contains(_ range: ClosedRange<T.Wrapped>) -> Query<Bool>

T == Bool에서 사용 가능

  • 하위 쿼리 표현식을 완성합니다.

    • 사용법: (($0.myCollection.age >= 21) && ($0.myCollection.siblings == 4))).count >= 5

    참고

    하위 쿼리 표현식 내에서 collection을 혼합하지 마세요. 각 하위 쿼리당 하나의 collection만 참고 수 있습니다.

    선언

    Swift

    public var count: Query<Int> { get }

T: _HasPersistedType, T.PersistedType: _QueryNumeric에서 사용 가능

  • min

    키 경로를 기반으로 collection에 있는 객체의 최소값을 반환합니다.

    선언

    Swift

    public var min: Query { get }
  • max

    키 경로를 기반으로 collection에 있는 객체의 최대값을 반환합니다.

    선언

    Swift

    public var max: Query { get }
  • avg

    키 경로를 기준으로 collection에 있는 객체의 평균을 반환합니다.

    선언

    Swift

    public var avg: Query { get }
  • sum

    키 경로를 기반으로 collection에 있는 객체의 합계를 반환합니다.

    선언

    Swift

    public var sum: Query { get }

T: OptionalProtocol, T.Wrapped: EmbeddedObject에서 사용 가능

  • 지리 공간적 도형(GeoBox, GeoPolygon 또는 GeoCircle)을 사용하여 위치 점이 특정 영역 내에 있는 객체를 필터링하려면 geoWithin 함수를 사용합니다.

    참고

    지리 공간적 점을 저장하는 전용 유형은 없으며 대신 점을 GeoJson 모양의 포함된 객체로 저장해야 합니다. 지리 공간적 쿼리(geoWithin)는 이러한 유형의 객체에서만 실행할 수 있으며 그렇지 않으면 발생합니다.

    ~를 참조하세요.

    GeoPoint

    선언

    Swift

    func geoWithin<U>(_ value: U) -> Query<Bool> where U : RLMGeospatial