Node.js 使用Mongoose在mongoDB中搜索文本

Node.js 使用Mongoose在mongoDB中搜索文本,node.js,mongodb,mongoose,mongodb-query,Node.js,Mongodb,Mongoose,Mongodb Query,我的mongoDB中有这种数据 { "_id" : ObjectId("5a26d554677475818a795f75"), "facebookId" : "123456", "gender" : "Female", "profileUrl" : "https://www.facebook.com/asdfasf", "imageUrl" : "/img/profile/sm1.jpg", "fi

我的mongoDB中有这种数据

 {
        "_id" : ObjectId("5a26d554677475818a795f75"),
        "facebookId" : "123456",
        "gender" : "Female",
        "profileUrl" : "https://www.facebook.com/asdfasf",
        "imageUrl" : "/img/profile/sm1.jpg",
        "firstName" : "Anna",
        "token" : "ldhajksdkjasdakjsdajksd",
        "email" : "sm1@gmail.com"
    }
这里让我们假设我做一个查询

User.find({firstName:'Anna'},function(err, data){
  console.log(data);
});
这给了我她的结果 但是我有
firstName:'nna'
firstName:'Ana'
firstName:'anna'
或任何其他组合。
因此,如何使用Mongoose为MongoDB中的字符串获取最接近的值,您可以使用
$regex
运算符通过结果是否与正则表达式匹配来过滤结果

例如:

const queryString = "an";
User.find(
  { firstName: { $regex: `^${queryString}.*`, $options: "i" } },
  (err, data) => {
    console.log(data);
  }
);
这将匹配其
firstName
字段以
开头的所有记录(不区分大小写)。您可以构建更复杂的正则表达式来满足您的业务需求


您可以阅读有关
$regex
运算符的更多信息。

您可以使用
$regex
运算符根据结果是否与正则表达式匹配来筛选结果

例如:

const queryString = "an";
User.find(
  { firstName: { $regex: `^${queryString}.*`, $options: "i" } },
  (err, data) => {
    console.log(data);
  }
);
这将匹配其
firstName
字段以
开头的所有记录(不区分大小写)。您可以构建更复杂的正则表达式来满足您的业务需求


你可以阅读更多关于
$regex
操作符的信息。

关于nna和aNa请帮助@Veeram你应该自己编写正则表达式,使其与你的用例匹配。关于nna和aNa请帮助@Veeram,你应该自己编写正则表达式,使其与你的用例匹配。