Buscar un objeto específico por clave primaria
Si conoce la clave principal de un objeto determinado, puede buscarla directamente con Reino.objectForPrimaryKey().
const myTask = realm.objectForPrimaryKey("Task", 12342245); // search for a realm object with a primary key that is an int.
Consultar un tipo de objeto
Para consultar objetos de un tipo específico en un realm, pasa el nombre del tipo a Realm.objects().
Las operaciones de consulta devuelven una colección de objetos Realm que coinciden con la consulta como un objeto Realm.Results.Una consulta básica busca todos los objetos de un tipo determinado en un dominio, pero también se puede aplicar un filtro a la colección para encontrar objetos específicos.
// Query realm for all instances of the "Task" type. const tasks = realm.objects("Task");
Consultas de filtros
Un filtro selecciona un subconjunto de resultados según los valores de una o más propiedades de un objeto. Realm permite filtrar datos mediante el lenguaje de consulta de Realm, un lenguaje de consulta basado en cadenas, para restringir las búsquedas al recuperar objetos de un dominio.
Para filtrar una consulta, llame a filtered() en la colección de resultados de la consulta. Pase una consulta de lenguaje de consulta Realm como argumento a filtered().
En el siguiente ejemplo, utilizamos los operadores de comparación del motor de consulta para:
Encuentre tareas de alta prioridad comparando el valor de la propiedad
prioritycon un número umbral, por encima del cual la prioridad puede considerarse alta.Encuentre tareas recién iniciadas o de corta duración observando si la propiedad
progressMinutesse encuentra dentro de un rango determinado.
// 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
Filtrar por propiedades de objetos relacionados e incrustados
Para filtrar una consulta en función de una propiedad de un objeto incrustado o un objeto relacionado, utilice la notación de puntos como si se tratara de un objeto anidado normal.
Ordene los resultados del query
Una operación de ordenación permite configurar el orden en que Realm devuelve los objetos consultados. Puede ordenarlos según una o más propiedades de los objetos de la colección de resultados. Realm solo garantiza un orden consistente de los resultados si los ordena explícitamente.
Para ordenar una consulta, llame al método sorted() en la colección de resultados de la consulta.
// 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
Ordenar por propiedades de objetos relacionados e incrustados
Para ordenar una query basada en una propiedad de un objeto incrustado o un objeto relacionado, usa notación de puntos como si fuera un objeto anidado regular.