[]
        
(Showing Draft Content)

테이블 데이터 검색

search 메서드는 지정된 필드에서 특정 값과 정확히 일치하는 레코드를 조회합니다.

검색 특성:

  • 대소문자를 구분합니다.

  • 정확히 일치하는 값만 검색합니다.

  • 일치하는 모든 레코드를 반환합니다.

  • 일치하는 값이 없으면 빈 배열을 반환합니다.

  • 필드가 존재하지 않으면 빈 배열을 반환합니다.

  • 인덱스가 있으면 인덱스를 사용합니다.

  • 인덱스가 없으면 선형 탐색으로 처리합니다.

search() 사용

table.search(value, field);

매개 변수

  • value - 검색할 값입니다. 문자열이 아닌 값은 내부적으로 문자열로 변환됩니다.

  • field - 대상 필드 이름입니다.

반환 값

일치하는 레코드 객체의 배열을 반환합니다.

반환 예:

[
  { Month: "Jan", Sales: 120 }
]

일치하는 레코드가 없는 경우:

[]

인덱스를 사용하는 예제

var dataManager = spread.dataManager();

var supplierTable = dataManager.addTable("Supplier", {
  remote: {
    read: { url: apiUrl }
  }
});

supplierTable.fetch().then(function () {
  supplierTable.createIndexes(["CompanyName", "City"]);

  var result =
    supplierTable.search("New Carlisle", "City");

  console.log(result);
});

가정된 데이터

테이블에 다음 레코드가 있다고 가정합니다.

[
  { SupplierID: 1, CompanyName: "Tokyo Traders", City: "Tokyo" },
  { SupplierID: 2, CompanyName: "Grand Foods", City: "New Carlisle" },
  { SupplierID: 3, CompanyName: "Sunrise Market", City: "New Carlisle" }
]

검색 결과

[
  { SupplierID: 2, CompanyName: "Grand Foods", City: "New Carlisle" },
  { SupplierID: 3, CompanyName: "Sunrise Market", City: "New Carlisle" }
]

"City"에 인덱스가 있는 경우 조회 시 인덱스를 사용합니다.

"City"에 인덱스가 없는 경우 테이블은 선형 탐색을 수행하며 동일한 결과를 반환하지만, 대규모 데이터 집합에서는 성능이 더 낮아질 수 있습니다.