2016-10-14 1 views
1

Ich versuche, den Array-Wert von html in der Server-Seite mongodb zu speichern. das Array kommt in Form von Strings, also zum Beispiel ["home", "sports"], aber ich muss in Form von Schrägstrich-Array speichern ie [/ home /,/sports /]. Ich versuchte mit Ersetzen Funktion in Javascript, aber ich habe es versäumt, das zu tun.Wie ersetzen Sie den String-Wert durch Schrägstriche in einem Array bei der Abfrage in Mongodb?

Hier ist mein Code, was ich versucht: in meinem Server-Seite-Controller:

var sample = []; 
    sampleArray = ["home","sports"]; //coming from html search query. 

    if(sampleArray != 0){ 
    for (var i = 0; i < sampleArray .length; i++) { 
      var eg3 = sampleArray [i]; 
      console.log('value form an array' + eg3); 
      sample.push(eg3); 

     } 
     var test = sample.replace(/"/g, "/"); 
    } 

    // querying my DB 
    mongoQuery = { 
      ProCat: { 
      $elemMatch: { 
       "title": { 
       $in: test //expected output [/home/,/sports/] but i am getting ["home","sports"] 
       } 
      } 
      } 
     } 

Antwort

1

Wenn Sie einen String Array zu Array RegEx konvertieren möchten, können Sie RegEx constructor und Array map() verwenden können.

es6:

const regexArray = ["home","sports"].map(x=>new RegExp(x)); 
 

 
console.log(regexArray);

ES5 Code converted online

"use strict"; 

var regexArray = ["home", "sports"].map(function (x) { 
    return new RegExp(x); 
}); 

console.log(regexArray); 
+0

können Sie mir bitte im Detail erklären, was es wiil Karte tun (x => new RegExp (x)) @sabitpocker – Midhunsai

+1

danke jetzt ist es klar und bekam auch das Ergebnis zu @sabitpocker – Midhunsai

Verwandte Themen