クエリ
@dynamicMemberLookup
public struct Query<T>
Query
は、型安全性のあるクエリ述語を作成するために使用されるクラスです。
Query
を使用すると、 NSPredicate
に構築される Swift スタイルのクエリ式を作成する機能が付与されます。 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
- ではない
!
swift let results = realm.objects(Person.self).query { !$0.dogsName.contains("Fido") || !$0.name.contains("Foo") }
比較
- equals
==
- 等しくない
!=
- 大なり
>
- 未満
<
- 以上
>=
- 以下
<=
- 間
.contains(_ range:)
コレクション
- で
.contains(_ element:)
- 間
.contains(_ range:)
Map
- @allKeys
.keys
- @allValues
.values
複合
- および
&&
- または
||
コレクションの集計
- @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 }
その他
- ではない
!
- サブクエリ
($0.fooList.intCol >= 5).count > n
-
値がコレクションに存在するかどうかを確認します。
宣言
Swift
public func `in`<U>(_ collection: U) -> Query<Bool> where T == U.Element, U : Sequence
-
テスト目的のみ。 を直接使用しないでください。
宣言
Swift
public static func _constructForTesting() -> Query<T>
-
それに付随する引数を含む NPredify 互換stringを構築します。
注意
これは内部使用のみで、テスト目的で公開されます。宣言
Swift
public func _constructPredicate() -> (String, [Any])
-
ネストされた混合コレクション内のすべてのインデックスまたはキーをクエリします。
宣言
Swift
public var any: Query<AnyRealmValue> { get }
-
コレクション内のオブジェクトの数をクエリします。
宣言
Swift
public var count: Query<Int> { get }
-
このコレクションに要素が存在するかどうかを確認します。
宣言
Swift
public func contains(_ value: T.Element) -> Query<Bool>
-
指定された配列に含まれる要素がコレクション内に存在するかどうかを確認します。
宣言
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>
-
コレクション内の最小値を返します。
宣言
Swift
public var min: Query<T.Element> { get }
-
コレクション内の最大値を返します。
宣言
Swift
public var max: Query<T.Element> { get }
-
コレクション内の平均を返します。
宣言
Swift
public var avg: Query<T.Element> { get }
-
コレクション内のすべての 値の合計を返します。
宣言
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
-
このコレクションに要素が存在するかどうかを確認します。
宣言
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>
-
キーされたコレクション内の最小値を返します。
宣言
Swift
public var min: Query<T.Value> { get }
-
キーされたコレクション内の最大値を返します。
宣言
Swift
public var max: Query<T.Value> { get }
-
キーされたコレクションの平均を返します。
宣言
Swift
public var avg: Query<T.Value> { get }
-
キー コレクション内のすべての 値の合計を返します。
宣言
Swift
public var sum: Query<T.Value> { get }
-
キーされたコレクション内のすべての値の数を返します。
宣言
Swift
public var count: Query<Int> { get }
-
列挙型自体ではなく、列挙型の rawValue に対してクエリを実行します。
これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で
.starts(with:)
をクエリできます。宣言
Swift
public var rawValue: Query<T.RawValue> { get }
次の場所で利用可能: T
: OptionalProtocol
、 T.Wrapped
: PersistableEnum
、 T.Wrapped.RawValue
: _RealmSchemaDiscoverable
-
列挙型自体ではなく、列挙型の rawValue に対してクエリを実行します。
これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で
.starts(with:)
をクエリできます。宣言
Swift
public var rawValue: Query<T.Wrapped.RawValue?> { get }
次の場所で利用可能: T
: RealmCollection
、 T.Element
: PersistableEnum
、 T.Element.RawValue
: RealmCollectionValue
-
列挙型自体ではなく、コレクション内の列挙型の rawValue に対するクエリ。
これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で
.starts(with:)
をクエリできます。宣言
Swift
public var rawValue: Query<AnyRealmCollection<T.Element.RawValue>> { get }
次の場所で利用可能: T
: RealmKeyedCollection
、 T.Value
: PersistableEnum
、 T.Value.RawValue
: RealmCollectionValue
-
列挙型自体ではなく、コレクション内の列挙型の rawValue に対するクエリ。
これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で
.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
-
列挙型自体ではなく、コレクション内の列挙型の rawValue に対するクエリ。
これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で
.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
-
列挙型自体ではなく、コレクション内の列挙型の rawValue に対するクエリ。
これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で
.starts(with:)
をクエリできます。宣言
Swift
public var rawValue: Query<Map<T.Key, T.Value.Wrapped.RawValue?>> { get }
-
値自体ではなく、値の partialValue に対してクエリを実行します。
これは、永続可能な値に対する範囲クエリや、マップされた型に変換できない値のクエリなど、永続化された型では表現できるが型自体では表現できないクエリを書き込むために使用できます。
PeristableEnum、CustomPeristable、または FailablecustomPerstable に準拠していない型の場合、これは有用ではありません。
宣言
Swift
public var persistableValue: Query<T.PersistedType> { get }
-
値自体ではなく、コレクション内の値の partialableValue に対してクエリを実行します。
これは、永続可能な値に対する範囲クエリや、マップされた型に変換できない値のクエリなど、永続化された型では表現できるが型自体では表現できないクエリを書き込むために使用できます。
PeristableEnum、CustomPeristable、または FailablecustomPerstable に準拠していない型の場合、これは有用ではありません。
宣言
Swift
public var persistableValue: Query<AnyRealmCollection<T.Element.PersistedType>> { get }
-
値自体ではなく、コレクション内の値の partialableValue に対してクエリを実行します。
これは、永続可能な値に対する範囲クエリや、マップされた型に変換できない値のクエリなど、永続化された型では表現できるが型自体では表現できないクエリを書き込むために使用できます。
PeristableEnum、CustomPeristable、または FailablecustomPerstable に準拠していない型の場合、これは有用ではありません。
宣言
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
大文字と小文字を区別しない検索の場合は、。
-
指定された値を含むこのコレクション内のすべての要素をチェックします。
宣言
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
検索クエリを評価するために使用されるオプションのセット。
-
指定された値で始まる、このコレクション内のすべての要素をチェックします。
宣言
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
検索クエリを評価するために使用されるオプションのセット。
-
指定された値と等しいこのコレクション内のすべての要素をチェックします。
宣言
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
検索クエリを評価するために使用されるオプションのセット。
-
指定された値と等しくないこのコレクション内のすべての要素をチェックします。
宣言
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
注意
サブクエリ式内でコレクションを混在させないでください。 サブクエリごとに 1 つのコレクションのみを参照できるようにします。宣言
Swift
public var count: Query<Int> { get }
- 使用法:
-
キーパスに基づいて、コレクション内のオブジェクトの最小値を返します。
宣言
Swift
public var min: Query { get }
-
キーパスに基づいて、コレクション内のオブジェクトの最大値を返します。
宣言
Swift
public var max: Query { get }
-
キーパスに基づいて、コレクション内のオブジェクトの平均を返します。
宣言
Swift
public var avg: Query { get }
-
キーパスに基づいて、コレクション内のオブジェクトの合計を返します。
宣言
Swift
public var sum: Query { get }
-
geoWithin
関数を使用して、地理空間シェイプ(GeoBox
、GeoPolygon
、またはGeoCircle
)を使用して、ロケーション ポイントが特定の地域内にあるオブジェクトをフィルタリングします。注意
地理空間ポイントを保存するための専用のタイプはありません。代わりに、ポイントはGeoJson 型の埋め込みオブジェクトとして保存する必要があります。 地理空間クエリ(geoWithin
)は、このようなタイプのオブジェクトでのみ実行でき、それ以外の場合はスローされます。詳細は、次を参照してください:
GeoPoint
宣言
Swift
func geoWithin<U>(_ value: U) -> Query<Bool> where U : RLMGeospatial