쿼리
@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])
-
혼합된 중첩 컬렉션의 모든 인덱스 또는 키를 쿼리합니다.
선언
Swift
public var any: Query<AnyRealmValue> { get }
-
컬렉션에 있는 객체의 개수를 쿼리합니다.
선언
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
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: Range<T.Element>) -> Query<Bool>
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: ClosedRange<T.Element>) -> Query<Bool>
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: Range<T.Element.Wrapped>) -> Query<Bool>
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: ClosedRange<T.Element.Wrapped>) -> Query<Bool>
-
collection의 최소값을 반환합니다.
선언
Swift
public var min: Query<T.Element> { get }
-
collection의 최대값을 반환합니다.
선언
Swift
public var max: Query<T.Element> { get }
-
collection의 평균을 반환합니다.
선언
Swift
public var avg: Query<T.Element> { get }
-
collection에 있는 모든 값의 합계를 반환합니다.
선언
Swift
public var sum: Query<T.Element> { get }
-
지정된 배열에 포함된 요소가 지도의 값에 존재하는지 확인합니다.
선언
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 }
-
Map
의 모든 키에 대한 쿼리를 허용합니다.선언
Swift
public var keys: Query<String> { get }
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: Range<T.Value>) -> Query<Bool>
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: ClosedRange<T.Value>) -> Query<Bool>
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: Range<T.Value.Wrapped>) -> Query<Bool>
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: ClosedRange<T.Value.Wrapped>) -> Query<Bool>
-
키 지정 collection의 최소값을 반환합니다.
선언
Swift
public var min: Query<T.Value> { get }
-
키 지정 collection의 최대값을 반환합니다.
선언
Swift
public var max: Query<T.Value> { get }
-
키순 collection의 평균을 반환합니다.
선언
Swift
public var avg: Query<T.Value> { get }
-
키순 collection에 있는 모든 값의 합계를 반환합니다.
선언
Swift
public var sum: Query<T.Value> { get }
-
키 지정 collection에 있는 모든 값의 개수를 반환합니다.
선언
Swift
public var count: Query<Int> { get }
-
열거형 자체가 아닌 열거형의 원시 값을 쿼리합니다.
이는 열거형이 아닌 원시 값으로 표현될 수 있는 쿼리를 작성하는 데 사용할 수 있습니다. 예를 들어 접두사가 열거형의 멤버가 아닌 문자열 열거형에서
.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 }
-
collection에 있는 열거형의 원시 값을 쿼리합니다.
이는 열거형이 아닌 원시 값으로 표현될 수 있는 쿼리를 작성하는 데 사용할 수 있습니다. 예를 들어 접두사가 열거형의 멤버가 아닌 문자열 열거형에서
.starts(with:)
를 쿼리할 수 있습니다.선언
Swift
public var rawValue: Query<AnyRealmCollection<T.Element.RawValue>> { get }
-
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 }
-
값 자체가 아닌 값의 지속성 값을 쿼리합니다.
이는 지속 가능한 값에 대한 범위 쿼리와 같이 지속형 유형에서는 표현할 수 있지만 유형 자체에서는 표현할 수 없는 쿼리를 작성하거나 매핑된 유형으로 변환할 수 없는 값을 쿼리하는 데 사용할 수 있습니다.
PersistableEnum, CustomPersistable 또는 FailableCustomPersistable을 준수하지 않는 유형의 경우 이는 유용하지 않습니다.
선언
Swift
public var persistableValue: Query<T.PersistedType> { get }
-
값 자체가 아닌 collection에 있는 값의 지속성 값을 Query합니다.
이는 지속 가능한 값에 대한 범위 쿼리와 같이 지속형 유형에서는 표현할 수 있지만 유형 자체에서는 표현할 수 없는 쿼리를 작성하거나 매핑된 유형으로 변환할 수 없는 값을 쿼리하는 데 사용할 수 있습니다.
PersistableEnum, CustomPersistable 또는 FailableCustomPersistable을 준수하지 않는 유형의 경우 이는 유용하지 않습니다.
선언
Swift
public var persistableValue: Query<AnyRealmCollection<T.Element.PersistedType>> { get }
-
값 자체가 아닌 collection에 있는 값의 지속성 값을 Query합니다.
이는 지속 가능한 값에 대한 범위 쿼리와 같이 지속형 유형에서는 표현할 수 있지만 유형 자체에서는 표현할 수 없는 쿼리를 작성하거나 매핑된 유형으로 변환할 수 없는 값을 쿼리하는 데 사용할 수 있습니다.
PersistableEnum, CustomPersistable 또는 FailableCustomPersistable을 준수하지 않는 유형의 경우 이는 유용하지 않습니다.
선언
Swift
public var persistableValue: Query<Map<T.Key, T.Value.PersistedType>> { get }
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: Range<T>) -> Query<Bool>
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: ClosedRange<T>) -> Query<Bool>
-
컬렉션에서 지정된 값과 동일한 모든 요소가 있는지 확인합니다.
?
및*
은 와일드카드 문자로 허용되며, 여기서?
는 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
대소문자를 구분하지 않는 검색인 경우.
-
지정된 값을 포함하는 이 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
검색 쿼리를 평가하는 데 사용되는 옵션 세트입니다.
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: Range<T.Wrapped>) -> Query<Bool>
-
컬렉션에서 지정된 범위 내에 있는 모든 요소를 확인합니다.
선언
Swift
public func contains(_ range: ClosedRange<T.Wrapped>) -> Query<Bool>
-
하위 쿼리 표현식을 완성합니다.
- 사용법:
(($0.myCollection.age >= 21) && ($0.myCollection.siblings == 4))).count >= 5
참고
하위 쿼리 표현식 내에서 collection을 혼합하지 마세요. 각 하위 쿼리당 하나의 collection만 참고 수 있습니다.선언
Swift
public var count: Query<Int> { get }
- 사용법:
-
키 경로를 기반으로 collection에 있는 객체의 최소값을 반환합니다.
선언
Swift
public var min: Query { get }
-
키 경로를 기반으로 collection에 있는 객체의 최대값을 반환합니다.
선언
Swift
public var max: Query { get }
-
키 경로를 기준으로 collection에 있는 객체의 평균을 반환합니다.
선언
Swift
public var avg: Query { get }
-
키 경로를 기반으로 collection에 있는 객체의 합계를 반환합니다.
선언
Swift
public var sum: Query { get }
-
지리 공간적 도형(
GeoBox
,GeoPolygon
또는GeoCircle
)을 사용하여 위치 점이 특정 영역 내에 있는 객체를 필터링하려면geoWithin
함수를 사용합니다.참고
지리 공간적 점을 저장하는 전용 유형은 없으며 대신 점을 GeoJson 모양의 포함된 객체로 저장해야 합니다. 지리 공간적 쿼리(geoWithin
)는 이러한 유형의 객체에서만 실행할 수 있으며 그렇지 않으면 발생합니다.~를 참조하세요.
GeoPoint
선언
Swift
func geoWithin<U>(_ value: U) -> Query<Bool> where U : RLMGeospatial