Docs 菜单

Docs 主页开发应用程序Atlas Device SDKs

CRUD - 读取 - Node.js SDK

在此页面上

  • 按主键查找特定对象
  • 查询 Realm 对象类型
  • 筛选查询
  • 对查询结果进行排序

如果您知道给定对象的主键,则可以直接使用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.Results对象的形式返回与查询匹配的 Realm 对象集合。基本查询会匹配 Realm 中给定类型的所有对象,但您也可以对集合应用筛选器以查找特定对象。

// Query realm for all instances of the "Task" type.
const tasks = realm.objects("Task");

过滤器根据一个或多个对象属性的值选择结果子集。Realm 允许您使用 Realm 查询语言过滤数据,这是一种基于字符串的查询语言,用于在从 Realm 检索对象时限制搜索。

要筛选查询,请对查询结果集合调用filtered() 。将 Realm Query Language 查询作为参数传递给 filtered()

在以下示例中,我们使用查询引擎的比较操作符执行以下操作:

  • 通过将 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}`
);

提示

过滤相关和嵌入式对象属性

要根据嵌入式对象相关对象的属性来过滤查询,请使用点符号,就像在常规嵌套对象中一样。

排序操作允许您配置 Realm 返回查询对象的顺序。您可以根据结果集合中对象的一个或多个属性进行排序。仅当您对结果进行显式排序时,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");

提示

根据相关和嵌入式对象属性进行排序

要根据嵌入式对象相关对象的属性来对查询进行排序,请使用点符号,就像在常规嵌套对象中一样。

← CRUD - 创建 - Node.js SDK