2016-09-08 3 views
0

나는 약 2 백만 개의 데이터를 담고있는 Product 클래스를 가지고있다. Product 테이블의 각 행에는 해시 값이 들어있는 property라는 필드가 있습니다. 검색 창에 입력 한 값을 제품 테이블의 해시 값 내에서 검색해야합니다. 어떻게해야합니까? MongoDB와 Rails를 사용하고 있습니다. 이것은 내가 지금까지 시도한 것이다.레일을 사용하여 MongoDB에서 쿼리하기

@product3= Product.select{|hash| hash.property.has_value? /.*#{params[:search]}*./i} 

제품 클래스에 대해 '선택'메서드를 반환합니다. 그래서 나는 아래와 같이 시도했다.

@product3= Product.all.to_a.select{|hash| hash.property.has_value? /.*#{params[:search]}*./i} 

하지만 시간이 많이 걸리는 모든 데이터 (200 만 개)에는 반복 중입니다.

EDIT : 제품 테이블의 샘플 데이터입니다. Product.limit(2).all.to_a 쿼리를 사용하여 제품 테이블에서 2 개의 레코드를 표시했습니다.

enter image description here

+0

당신이 당신의 DB 구조를 보여줄 수처럼 쿼리에 대한이 하나를 시도? – Shrabanee

+0

@Shrabanee. 고맙습니다. 질문을 업데이트했습니다. 첨부 된 이미지를 살펴보십시오. – poombavai

답변

0

/.*#{params[:search]}.*/i 
+0

고맙습니다. 전체 쿼리를 도와 주시겠습니까? – poombavai

관련 문제