我有一个模型用户,其中包含一些基本用户信息。我只是为我的应用程序添加了搜索功能,我想找到在其displayName属性中包含搜索词的用户?
用户模型
[
{
"_id" : ObjectId("5bbda46a433ced65ac7c4699"),
"email" : "henoktes72@gmail.com",
"displayName" : "Henok Tesfaye",
"userId" : "5bbda46a433ced65ac7c4698",
"reputationNumber" : 0,
"questions" : [
"5bbf135d7883513e3839a34c"
],
"answers" : []
},
{
"_id" : ObjectId("5bbdb84a7da23035740bf056"),
"email" : "mezi@gmail.com",
"displayName" : "Mezi Villager",
"userId" : "5bbdb84a7da23035740bf055",
"reputationNumber" : 5,
"questions" : [
"5bbf1f137883513e3839a34f"
],
"answers" : [
"5bbf6933e564763770d81828"
]
}
]
如果搜索词为Henok,则输出必须为
[
{
"_id" : ObjectId("5bbda46a433ced65ac7c4699"),
"email" : "henoktes72@gmail.com",
"displayName" : "Henok Tesfaye",
"userId" : "5bbda46a433ced65ac7c4698",
"reputationNumber" : 0,
"questions" : [
"5bbf135d7883513e3839a34c"
],
"answers" : []
}
]
.find({ displayName: "Henok" })
返回空记录。
答案 0 :(得分:2)
您可以在filter
条件的环回中使用where
。
在环回中使用正则表达式的两种方式。
Model.find({
where: {'displayName': /video/i }, //i for case-insensitive.
}, function(err, resilus) {
console.log(resilus);
});
OR
var search = new RegExp(search, 'i'); //i for case-insensitive.
Model.find({
where: {'displayName': search },
}, function(err, resilus) {
console.log(resilus);
});
答案 1 :(得分:1)
使用可以在.find(...)
函数中使用正则表达式:
.find({displayName: /Henok/})