MongoDB利用正则表达式查询(pymongo实现)

本文介绍了如何使用Python的pymongo库在MongoDB中进行正则表达式查询,通过实例代码展示具体操作步骤,帮助读者掌握这一功能。

直接上代码:

cursor = reviews_collection.find({"text":{'$regex' : ".*atmosphere.*"}})

其中,reviews_collection是要进行查询的collection;"text"是要进行查询的键,对应的值为字符串类型;{'$regex' : ".*atmosphere.*"} 中 '$regex' 声明要使正则表达式进行查询, 跟在冒号后面的 ".*atmosphere.*" 是正则表达式公式(该公式的意思是查询匹配所有包含”atmosphere“的字符串)。
使用cursor 方便后面查看查询到的各个文档,可以使用 cursor .next() 逐个查看。
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中的月薪数据将按照规范的格式存储,方便后续使用和分析。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值