CRUD - 読み取り - Node.js SDK
プライマリキーによる特定のオブジェクトの検索
特定のオブジェクトのプライマリキーがわかっている場合は、 Realm.objectForPrimaryKey() を使用して直接検索できます。
const myTask = realm.objectForPrimaryKey("Task", 12342245); // search for a realm object with a primary key that is an int.
オブジェクトタイプのクエリ
Realm 内の特定の型のオブジェクトをクエリするには、型名をRealm.objects() に渡します。
クエリ操作では、クエリに一致する Realm オブジェクトのコレクションがRealm.Resultsオブジェクトとして返されます。 基本的なクエリは、Realm 内の特定の型のすべてのオブジェクトと一致しますが、 コレクションにフィルターを適用して特定のオブジェクトを検索することもできます。
// Query realm for all instances of the "Task" type. const tasks = realm.objects("Task");
フィルター クエリ
フィルターは、1 つ以上のオブジェクト プロパティの値に基づいて結果のサブセットを選択します。 Realmを使用すると、Realm からオブジェクトを取得するときに検索を制限するための string ベースのクエリ言語であるRQLを使用してデータをフィルタリングできます。
クエリをフィルタリングするには、クエリ結果コレクションでfiltered()を呼び出します。 RQLクエリを引数として {3filtered()
に渡します。
次の例では、クエリ エンジンの比較演算子を使用して次のようにします。
priority
プロパティ値の値をしきい値と比較して、優先順位の高いタスクを見つけます。どの優先順位を超えると、優先順位が高いと見なされます。progressMinutes
プロパティが特定の範囲内にあるかどうかを確認して、開始されたばかりのタスクまたは実行時間が短いタスクを見つけます。
// retrieve the set of Task objects const tasks = realm.objects("Task"); // filter for tasks with a high priority const highPriorityTasks = tasks.filtered("priority > $0", 5); // filter for tasks that have just-started or short-running progress const lowProgressTasks = tasks.filtered( "$0 <= progressMinutes && progressMinutes < $1", 1, 10 ); console.log( `Number of high priority tasks: ${highPriorityTasks.length} \n`, `Number of just-started or short-running tasks: ${lowProgressTasks.length}` );
Tip
関連プロパティと埋め込みオブジェクト プロパティでフィルタリング
埋め込みオブジェクトまたは関連オブジェクトのプロパティに基づいてクエリをフィルタリングするには、通常のネストされたオブジェクトと同様に ドット表記 を使用します。
クエリ結果のソート
ソート操作を使用すると、Realm がクエリされたオブジェクトを返す順序を構成できます。 You can sort based on one or more properties of the objects in the results collection. Realm では、明示的にソートした場合にのみ、結果の一貫した順序が保証されます。
クエリをソートするには、クエリ結果コレクションでソートされた()メソッドを呼び出します。
// retrieve the set of Task objects const tasks = realm.objects("Task"); // Sort tasks by name in ascending order const tasksByName = tasks.sorted("name"); // Sort tasks by name in descending order const tasksByNameDescending = tasks.sorted("name", true); // Sort tasks by priority in descending order and then by name alphabetically const tasksByPriorityDescendingAndName = tasks.sorted([ ["priority", true], ["name", false], ]); // Sort dogs by dog's owner's name. let dogsByOwnersName = realm.objects("Dog").sorted("owner.name");
Tip
関連性と埋め込みオブジェクトのプロパティでソート
埋め込みオブジェクトまたは関連オブジェクトのプロパティに基づいてクエリをソートするには、通常のネストされたオブジェクトと同様に ドット表記 を使用します。