$の正規表現は、フィールドタイプString.Itのためだけに使用され
以下のようにユーザーモデルを見てみましょう//正規表現演算子で
を再生するための小さな例を考えてみましょう他の種類
では動作しません。
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);
マルチ$の正規表現演算子による検索やマルチ検索のための$オプションのためのあなたのMongoDBのクエリは次のようになりますよう
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
}
}) ;
以下0
これはあなたを助けるかもしれませんが、mongodbで検索エンジンを作成するのが最善です。次は、Elastic Searchには有効です。
「正規表現に基づいて結果を並べ替える」とはどういう意味ですか?特定の例を含めるように質問を更新すると非常に役に立ちます。 – JohnnyHK