使用Mongoose在mongoDB中搜索文本
我的mongoDB中有这种数据
{
"_id" : ObjectId("5a26d554677475818a795f75"),
"facebookId" : "123456",
"gender" : "Female",
"profileUrl" : "",
"imageUrl" : "/img/profile/sm1.jpg",
"firstName" : "Anna",
"token" : "ldhajksdkjasdakjsdajksd",
"email" : "[email protected]"
}
这里就说我做一个查询
User.find({firstName:'Anna'},function(err, data){
console.log(data);
});
它给了我她的结果,但我做firstName:'nna'
或firstName:'Ana'
或firstName:'anna'
或任何其他组合。那么我如何使用Mongoose在MongoDB中获得最接近STRING的值
您可以使用$regex
运算符筛选结果是否与正则表达式匹配。
例:
const queryString = "an";
User.find(
{ firstName: { $regex: `^${queryString}.*`, $options: "i" } },
(err, data) => {
console.log(data);
}
);
这将匹配firstName
字段以an
开头的所有记录(不区分大小写)。您可以构建更复杂的正则表达式以满足您的业务需求。
您可以阅读有关$regex
运算符here的更多信息。
使用Mongoose在mongoDB中搜索文本
我的mongoDB中有这种数据
{
"_id" : ObjectId("5a26d554677475818a795f75"),
"facebookId" : "123456",
"gender" : "Female",
"profileUrl" : "",
"imageUrl" : "/img/profile/sm1.jpg",
"firstName" : "Anna",
"token" : "ldhajksdkjasdakjsdajksd",
"email" : "[email protected]"
}
这里就说我做一个查询
User.find({firstName:'Anna'},function(err, data){
console.log(data);
});
它给了我她的结果,但我做firstName:'nna'
或firstName:'Ana'
或firstName:'anna'
或任何其他组合。那么我如何使用Mongoose在MongoDB中获得最接近STRING的值
您可以使用$regex
运算符筛选结果是否与正则表达式匹配。
例:
const queryString = "an";
User.find(
{ firstName: { $regex: `^${queryString}.*`, $options: "i" } },
(err, data) => {
console.log(data);
}
);
这将匹配firstName
字段以an
开头的所有记录(不区分大小写)。您可以构建更复杂的正则表达式以满足您的业务需求。
您可以阅读有关$regex
运算符here的更多信息。