$ regex ist verwendet nur für Feldtyp String.It funktioniert nicht mit anderen Arten
für kleines Beispiel Lassen Betrachten mit regex Operator Spielen
// nehmen Lassen Benutzermodell wie unten
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = new Schema({
Name:String,
Age:Number,
Sex:Boolean,
EmailID:String,
PhoneNumber:String,
Description:String,
created_at:Date,
updated_at:Date
});
module.exports = mongoose.model('UserSchema', UserSchema);
Ihre mongodb Abfrage für Multi-Suche mit $ regex Operator und $ Optionen für Multi-Suche wird wie sein unter
var toSearch = req.body.searchvalue;
var query = {
$or:[
{
"Name":{
$regex:toSearch,
$options:"i" //it will match both upper case and lower case
}
},
{
"EmailID":{
$regex:toSearch,
$options:"i" //it will match both upper case and lower case
}
},
{
"PhoneNumber":{
$regex:toSearch,
$options:"i" //it will match both upper case and lower case
}
},{
"Description":{
$regex:toSearch,
$options:"i" //it will match both upper case and lower case
}
}
]
}
//Important point to remember we cannot use $regex for age,sex,created_at,updated_at because this field are not String
UserSchema.find(query).toArray(function (err,SearchData) {
if(!err){
//perform your operations
}
}) ;
Könnte dies Ihnen helfen und es ist am besten, Suchmaschine in mongodb zu erstellen. Es ist die nächste effektive für die elastische Suche, die Nr. 1
Was meinst du mit "sortieren die Ergebnisse auf der Grundlage der Regex"? Es wäre sehr hilfreich, wenn Sie Ihre Frage auf ein bestimmtes Beispiel aktualisieren. – JohnnyHK