2017-05-28 1 views
0

Ich bin Neuling auf Redis und NodeJS, ich this Tutorial gesehen haben und ich versuche, Benutzer nach dem Namen zu suchen,Wie Suchwert in einem Objekt in Redis?

Hier ist das Objekt, zurückgegeben von redis wenn ich die ID übergeben:

{ 
    first_name: '‪john', 
    last_name: 'doe', 
    email: '[email protected]', 
    phone: '543313305', 
    id: 'user001' 
    } 
Hier

ist die Funktion der Suche:

app.post('/user/search',function (req,res,next) { 
let id = req.body.id; 

client.hgetall(id ,function(err,obj){ 
    if(!obj){ 
     res.render('searchusers',{ 
      error:"user doesn't exist", 

     }); 

    } else { 
     obj.id = id 
     console.log(obj); 
     res.render('details',{ 
      user:obj, }); 
    } 
    }); 
}); 

ich habe versucht, die Suche nach ID zu ersetzen, indem first_name zu suchen, indem dies zu tun:

Zuerst habe ich den Feldnamen zu "first_name" anstelle von "id"

<h1>Search Users</h1> 
{{#if error}} <span>{{error}}</span>{{/if}} 
<form class="form-inline" method="POST" action="/user/search"> 
<div class="form-group"> 
    <input type="text" name="first_name" placeholder="Search" class="form- 
    control"> 
</div> 
<input type="submit" class="btn btn-primary" value="Search"> 

geändert Und als ich habe es in den app.js geändert;

app.post('/user/search',function (req,res,next) { 
let first_name = req.body.first_name; 

client.hgetall(first_name ,function(err,obj){ 
    if(!obj){ 
     res.render('searchusers',{ 
      error:"user doesn't exist", 

     }); 

    } else { 
     obj.first_name = first_name 
     console.log(obj); 
     res.render('details',{ 
      user:obj, }); 
    } 
    }); 
}); 

Antwort

1

Die hgetall Methode, die Sie in der Suchfunktion des Verfahrens verwenden sieht einen Hash durch den Schlüssel auf, der in diesem Fall die Benutzer-ID und gibt alle Felder des Hash von Redis.

Es gibt keine Funktion, um die Felder des Hash zu durchsuchen. Wenn Sie in der Lage sein müssen, einem Benutzer einen Vornamen zuzuordnen, müssen Sie einen Sekundärindex manuell erstellen, indem Sie eine Datenstruktur wie z. B. Mengen verwenden, mit der Sie vom Vornamen zu den Benutzern mit diesem Vornamen wechseln können.