Ich muss eine Abfrage schreiben, die als Autocomplete für die Suche nach einem Standort funktioniert. Die Else-Anweisung funktioniert gut, wenn Sie das richtige Land finden, aber wenn ein Benutzer beispielsweise "Deutschland, Berlin" schreibt, wirft der Algorithmus andere Länder auf, die möglicherweise eine Stadt namens "Berlin" haben. Ich brauche es nur nach Städten zu suchen, die sich beispielsweise in "Deutschland" befinden.Mongoose Regex Suche mit zwei Bedingungen
Nur um es zu verdeutlichen, wird die Flag-Variable wahr, wenn ein Komma in der Suchparameter-Zeichenfolge ist. Es teilt sich dann in Land und Stadt auf.
if(flag){
World.findOne().or([{name:{$regex:country}},{cities: {$regex:city}}]).exec(function (err, users) {
if (err) return console.error(err);
console.log(users);
res.send(users);
});
}else{
World.findOne({name:{$regex:val}}, {cities: {$slice: 10}}).exec(function (err, users) {
if (err) return console.error(err);
console.log(users);
res.send(users);
});
}
Ich habe versucht, auch diese, aber es wirft einen Compiler-Fehler:
if(flag){
World.findOne({{country:{$regex:country}},{cities: {$regex:city}}}).exec(function (err, users) {
if (err) return console.error(err);
console.log(users);
res.send(users);
});
das gleiche versucht, mit den äußeren Klammern in FindOne Entfernen()
Versuchen Was Fehler erhalten Sie? – abdulbarik
Auf dem zweiten zweiten Code bekomme ich World.findOne ({{country: {$ regex: country}}, {Städte: {$ regex: city}}}) ex ^ Syntaxerror:. Unerwartetes Token { –