Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

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 객체 컬렉션을 Realm.Results 객체로 반환합니다. 기본 쿼리는 Realm에서 지정된 유형의 모든 객체를 일치시키지만 컬렉션에 필터 를 적용하여 특정 객체를 찾을 수도 있습니다.

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

필터는 하나 이상의 객체 속성 값을 기반으로 결과의 하위 집합을 선택합니다. Realm을 사용하면 문자열 기반 쿼리 언어인 Realm Query Language 영역에서 객체를 검색할 때 검색을 제한하는 데이터 필터링이 가능합니다.

쿼리를 필터링하려면 쿼리 결과 컬렉션에서 wired() 를 호출합니다. RQL 쿼리를 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은 명시적으로 정렬하는 경우에만 결과의 일관된 순서를 보장합니다.

쿼리를 정렬하려면 쿼리 결과 collection에서 sorted( ) 메서드를 호출합니다.

// 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");

관련 객체 및 내장된 객체 속성에서 정렬

내장된 객체 또는 관련 객체의 속성을 기준으로 쿼리를 정렬하려면 일반 중첩된 객체에서처럼 점 표기법을 사용합니다.

돌아가기

만들기