【问题标题】:Search for text in mongoDB using Mongoose使用 Mongoose 在 mongoDB 中搜索文本
【发布时间】:2017-12-26 07:14:29
【问题描述】:

我的 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 中获得最接近 STRING 的值

【问题讨论】:

    标签: node.js mongodb mongoose mongodb-query


    【解决方案1】:

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

    例子:

    const queryString = "an";
    User.find(
      { firstName: { $regex: `^${queryString}.*`, $options: "i" } },
      (err, data) => {
        console.log(data);
      }
    );
    

    这将匹配所有firstName 字段以an 开头的记录(不区分大小写)。您可以构建更复杂的正则表达式来满足您的业务需求。

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

    【讨论】:

    • nna 和 aNa 怎么样,请帮助@Veeram
    • 您应该自己编写正则表达式,使其与您的用例相匹配。
    猜你喜欢
    • 2013-04-06
    • 2017-05-14
    • 1970-01-01
    • 2020-07-15
    • 2020-09-03
    • 1970-01-01
    • 2022-07-22
    • 2015-09-18
    相关资源
    最近更新 更多