mongodb中利用正则表达式模糊查询

mongodb中实现模糊查询可以直接使用正则表达式,官方也给出了reg的查询方式,首先我们直接来实现下基本的模糊查询,代码很简单,也非常实用,如果你已经创建了一个数据库,并且里面包含了数据,那么你可以直接在命令行使用如下命令进行模糊查询:

db.col.find({name:/小强/})

我们可以看到“/小强/”,这个就是正则表达式了,我们也可以直接使用/^小强/等等正则表达式,都可以查询到相关数据。
但是问题来了,我们在写程序的时候,用户可能查询的是一个变量,这个值并不是固定的,因此使用这样的方法,仅能固定一个关键词。我之前试过以下方法,但是并没有通过

var query="/"+key+"/";
User.find({name:query},function(res,req,next){
.....
});

这种方式,我总是无法获取到我想要的数据,而且返回的都是空,最终我发现了问题,应该是我所定义的query是一个string格式,而并不是正则表达式,因此这种方法是不可行的,大家也不要再使用这样的方式了。下面我将直接使用RegExp方式进行查询。这也是最终能够真正实现模糊查询的方法。

var keyword=req.params.keyword;
var key = {'name': new RegExp(keyword)}; //模糊查询参数
Job.find(key,function (err, jobs) {
        if (err) {
            return res.send(err);
        }
        res.json(jobs);
    })

到此,我们可以实现真正的模糊查询了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python清洗MongoDB数据,并利用正则表达式提取月薪,并将待遇规范成“千/月”的形式,可以按照以下步骤进行。 首先,我们需要连接MongoDB数据库,并获取相关的数据。可以使用pymongo库来实现连接和获取数据的功能。 接下来,可以使用正则表达式来提取月薪信息。通过编适当的正则表达式模式,可以匹配出具有月薪信息的字符串。例如,可以使用“(\d+)-(\d+)元/月”的模式,匹配由“数字-数字元/月”组成的字符。 一旦提取出月薪信息,我们可以对提取到的数字进行处理,将其规范化为“千/月”的形式。 假设月薪数据存储在名为“salary”的字段,可以使用以下代码实现数据清洗和月薪规范化的功能: ```python import re from pymongo import MongoClient # 连接MongoDB数据库 client = MongoClient("mongodb://localhost:27017") db = client["your_database_name"] collection = db["your_collection_name"] # 获取数据 data = collection.find() # 提取月薪并规范化 for item in data: salary = item["salary"] match = re.search(r"(\d+)-(\d+)元/月", salary) if match: min_salary = int(match.group(1)) / 1000 # 将最低薪资转换为千 max_salary = int(match.group(2)) / 1000 # 将最高薪资转换为千 item["salary"] = f"{min_salary}-{max_salary}千/月" collection.save(item) # 保存修改后的数据回MongoDB ``` 以上代码将会遍历MongoDB的所有数据,并将符合“数字-数字元/月”格式的月薪字段提取并规范化为“千/月”的形式,然后保存回MongoDB。 当代码执行完毕后,MongoDB的月薪数据将按照规范的格式存储,方便后续使用和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值