2016-09-08 2 views
0

Ich habe eine Produktklasse, die etwa 2 Millionen Daten enthält. Jede Zeile in der Product-Tabelle hat ein Feld namens property, das Hash-Werte enthält. Ich habe Suchfeld und der Wert in Suchfeld eingegeben sollte innerhalb der Hash-Werte der Tabelle Produkte durchsucht werden. Wie mache ich das? Ich verwende MongoDB und Rails. Das habe ich bisher versucht.Abfrage in MongoDB mit Rails

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

Es gibt undefinierte Methode 'select' für die Produktklasse zurück. Also habe ich versucht wie unten.

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

Aber es ist Looping zu allen Daten (2 Millionen), die eine Menge Zeit braucht.

EDIT: Bild für Beispieldaten aus der Produkttabelle. Ich habe 2 Datensätze aus der Produkttabelle mit der Abfrage Product.limit(2).all.to_a angezeigt.

enter image description here

+0

Können Sie Ihre DB-Struktur zeigen? – Shrabanee

+0

@Shrabanee. Vielen Dank. Die Frage wurde aktualisiert. Bitte werfen Sie einen Blick auf das beigefügte Bild. – poombavai

Antwort

0

mit einem form Wie bei Abfrage Versuchen

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

Danke. Können Sie mir bitte bei der vollständigen Abfrage helfen. – poombavai