クエリ

@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])

T == AnyRealmValueで利用可能

  • any

    ネストされた混合コレクション内のすべてのインデックスまたはキーをクエリします。

    宣言

    Swift

    public var any: Query<AnyRealmValue> { get }

T : RealmCollectionで利用可能

  • コレクション内のオブジェクトの数をクエリします。

    宣言

    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

T : RealmCollectionT.Element : Comparableで利用可能

  • 指定された範囲内にあるこのコレクション内のすべての要素をチェックします。

    宣言

    Swift

    public func contains(_ range: Range<T.Element>) -> Query<Bool>
  • 指定された範囲内にあるこのコレクション内のすべての要素をチェックします。

    宣言

    Swift

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

次の場所で利用可能: T : RealmCollectionT.Element : OptionalProtocolT.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 : RealmCollectionT.Element.PersistedType : _QueryNumericで利用可能

  • min

    コレクション内の最小値を返します。

    宣言

    Swift

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

    コレクション内の最大値を返します。

    宣言

    Swift

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

    コレクション内の平均を返します。

    宣言

    Swift

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

    コレクション内のすべての 値の合計を返します。

    宣言

    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
  • このコレクションに要素が存在するかどうかを確認します。

    宣言

    Swift

    public func contains(_ value: T.Value) -> Query<Bool>
  • マップ内のすべての値に対するクエリを許可します。

    宣言

    Swift

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

T : RealmKeyedCollectionT.Key == Stringで利用可能

  • Map内のすべてのキーに対するクエリを許可します。

    宣言

    Swift

    public var keys: Query<String> { get }

T : RealmKeyedCollectionT.Value : Comparableで利用可能

  • 指定された範囲内にあるこのコレクション内のすべての要素をチェックします。

    宣言

    Swift

    public func contains(_ range: Range<T.Value>) -> Query<Bool>
  • 指定された範囲内にあるこのコレクション内のすべての要素をチェックします。

    宣言

    Swift

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

次の場所で利用可能: T : RealmKeyedCollectionT.Value : OptionalProtocolT.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 : RealmKeyedCollectionT.Value.PersistedType : _QueryNumericで利用可能

  • min

    キーされたコレクション内の最小値を返します。

    宣言

    Swift

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

    キーされたコレクション内の最大値を返します。

    宣言

    Swift

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

    キーされたコレクションの平均を返します。

    宣言

    Swift

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

    キー コレクション内のすべての 値の合計を返します。

    宣言

    Swift

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

T : RealmKeyedCollectionで利用可能

  • キーされたコレクション内のすべての値の数を返します。

    宣言

    Swift

    public var count: Query<Int> { get }

T : PersistableEnumT.RawValue : _RealmSchemaDiscoverableで利用可能

  • 列挙型自体ではなく、列挙型の rawValue に対してクエリを実行します。

    これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で .starts(with:) をクエリできます。

    宣言

    Swift

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

次の場所で利用可能: T : OptionalProtocolT.Wrapped : PersistableEnumT.Wrapped.RawValue : _RealmSchemaDiscoverable

  • 列挙型自体ではなく、列挙型の rawValue に対してクエリを実行します。

    これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で .starts(with:) をクエリできます。

    宣言

    Swift

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

次の場所で利用可能: T : RealmCollectionT.Element : PersistableEnumT.Element.RawValue : RealmCollectionValue

  • 列挙型自体ではなく、コレクション内の列挙型の rawValue に対するクエリ。

    これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で .starts(with:) をクエリできます。

    宣言

    Swift

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

次の場所で利用可能: T : RealmKeyedCollectionT.Value : PersistableEnumT.Value.RawValue : RealmCollectionValue

  • 列挙型自体ではなく、コレクション内の列挙型の rawValue に対するクエリ。

    これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で .starts(with:) をクエリできます。

    宣言

    Swift

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

次の場所で利用可能: T : RealmCollectionT.Element : OptionalProtocolT.Element.Wrapped : PersistableEnumT.Element.Wrapped.RawValue : _RealmCollectionValueInsideOptional

  • 列挙型自体ではなく、コレクション内の列挙型の rawValue に対するクエリ。

    これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で .starts(with:) をクエリできます。

    宣言

    Swift

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

次の場所で利用可能: T : RealmKeyedCollectionT.Value : OptionalProtocolT.Value.Wrapped : PersistableEnumT.Value.Wrapped.RawValue : _RealmCollectionValueInsideOptional

  • 列挙型自体ではなく、コレクション内の列挙型の rawValue に対するクエリ。

    これを使用して、RawValue では表現できるが列挙型では表現できないクエリを作成できます。 たとえば、これにより、プレフィックスが列挙型のメンバーではないstring列挙型で .starts(with:) をクエリできます。

    宣言

    Swift

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

T : _HasPersistedTypeで利用可能

  • 値自体ではなく、値の partialValue に対してクエリを実行します。

    これは、永続可能な値に対する範囲クエリや、マップされた型に変換できない値のクエリなど、永続化された型では表現できるが型自体では表現できないクエリを書き込むために使用できます。

    PeristableEnum、CustomPeristable、または FailablecustomPerstable に準拠していない型の場合、これは有用ではありません。

    宣言

    Swift

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

T : RealmCollectionで利用可能

  • 値自体ではなく、コレクション内の値の partialableValue に対してクエリを実行します。

    これは、永続可能な値に対する範囲クエリや、マップされた型に変換できない値のクエリなど、永続化された型では表現できるが型自体では表現できないクエリを書き込むために使用できます。

    PeristableEnum、CustomPeristable、または FailablecustomPerstable に準拠していない型の場合、これは有用ではありません。

    宣言

    Swift

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

T : RealmKeyedCollectionで利用可能

  • 値自体ではなく、コレクション内の値の partialableValue に対してクエリを実行します。

    これは、永続可能な値に対する範囲クエリや、マップされた型に変換できない値のクエリなど、永続化された型では表現できるが型自体では表現できないクエリを書き込むために使用できます。

    PeristableEnum、CustomPeristable、または FailablecustomPerstable に準拠していない型の場合、これは有用ではありません。

    宣言

    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 : _HasPersistedTypeT.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 : _HasPersistedTypeT.PersistedType : _QueryBinaryで利用可能

  • 指定された値を含むこのコレクション内のすべての要素をチェックします。

    宣言

    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

    検索クエリを評価するために使用されるオプションのセット。

T : OptionalProtocolT.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

    注意

    サブクエリ式内でコレクションを混在させないでください。 サブクエリごとに 1 つのコレクションのみを参照できるようにします。

    宣言

    Swift

    public var count: Query<Int> { get }

T : _HasPersistedTypeT.PersistedType : _QueryNumericで利用可能

  • min

    キーパスに基づいて、コレクション内のオブジェクトの最小値を返します。

    宣言

    Swift

    public var min: Query { get }
  • max

    キーパスに基づいて、コレクション内のオブジェクトの最大値を返します。

    宣言

    Swift

    public var max: Query { get }
  • avg

    キーパスに基づいて、コレクション内のオブジェクトの平均を返します。

    宣言

    Swift

    public var avg: Query { get }
  • sum

    キーパスに基づいて、コレクション内のオブジェクトの合計を返します。

    宣言

    Swift

    public var sum: Query { get }

T : OptionalProtocolT.Wrapped : EmbeddedObjectで利用可能

  • geoWithin関数を使用して、地理空間シェイプ( GeoBoxGeoPolygon 、またはGeoCircle )を使用して、ロケーション ポイントが特定の地域内にあるオブジェクトをフィルタリングします。

    注意

    地理空間ポイントを保存するための専用のタイプはありません。代わりに、ポイントはGeoJson 型の埋め込みオブジェクトとして保存する必要があります。 地理空間クエリ( geoWithin )は、このようなタイプのオブジェクトでのみ実行でき、それ以外の場合はスローされます。

    詳細は、次を参照してください:

    GeoPoint

    宣言

    Swift

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