Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

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

関連プロパティと埋め込みオブジェクト プロパティでフィルタリング

埋め込みオブジェクトまたは関連オブジェクトのプロパティに基づいてクエリをフィルタリングするには、通常のネストされたオブジェクトと同様に ドット表記 を使用します。

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

関連性と埋め込みオブジェクトのプロパティでソート

埋め込みオブジェクトまたは関連オブジェクトのプロパティに基づいてクエリをソートするには、通常のネストされたオブジェクトと同様に ドット表記 を使用します。

戻る

作成