python MongoDB

这段博客展示了如何使用Python的pymongo库进行MongoDB数据库的查询和更新操作。首先,通过MongoClient建立数据库连接,选取特定的数据库和集合。接着,定义查询条件和所需字段,使用find方法获取数据,并限制返回的数量。最后,遍历查询结果,更新查询到的记录中'_is_to_crawled'字段值为0,使用update_many方法完成批量更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python MongoDB

查询

# 导入包
from pymongo import MongoClient
# 建立连接
client = MongoClient()
# 选择数据库
db = client['weibo']
# 选择数据表
collection = db['weibo']
# 查询条件
query = {'_is_to_crawled': 1}
# 获取指定字段,将需要获取的字段设置为1
field = {'user_id': 1}
# 获取查询结果,结果是一个字典型的列表
# limit()获取指定的数量
result = collection.find(query, field).limit(10)

for r in result:
    print(r)
# 输出结果:
{'_id': ObjectId('6170220e8df9c0f5d16c5721'), 'user_id': 1878134457}
{'_id': ObjectId('6170220e8df9c0f5d16c5722'), 'user_id': 6129880192}
{'_id': ObjectId('6170220e8df9c0f5d16c5723'), 'user_id': 6666799534}
{'_id': ObjectId('6170220e8df9c0f5d16c5724'), 'user_id': 5750462618}
{'_id': ObjectId('6170220e8df9c0f5d16c5725'), 'user_id': 1986292217}
{'_id': ObjectId('6170220e8df9c0f5d16c5726'), 'user_id': 1863635992}
{'_id': ObjectId('6170220e8df9c0f5d16c5727'), 'user_id': 6383138456}
{'_id': ObjectId('6170220e8df9c0f5d16c5728'), 'user_id': 6863418456}
{'_id': ObjectId('6170220e8df9c0f5d16c5729'), 'user_id': 5963361562}
{'_id': ObjectId('6170220e8df9c0f5d16c572a'), 'user_id': 5640905497}

更新

# 导入包
from pymongo import MongoClient
# 建立连接
client = MongoClient()
# 选择数据库
db = client['weibo']
# 选择数据表
collection = db['weibo']
# 查询条件
query = {'_is_to_crawled': 1}
# 获取指定字段,将需要获取的字段设置为1
field = {'user_id': 1}
# 获取查询结果,结果是一个字典型的列表
# limit()获取指定的数量
result = collection.find(query, field).limit(10)

# 将查询到的十条信息的'_is_to_crawled'字段值更新为0
for r in result:
    # 指定查询条件
    myQuery = {'user_id': r['user_id']}
    # print(myQuery['user_id'])
    # 设置新的值
    newValue = {'$set': {'_is_to_crawled': 0}}
    # 执行更新条件
    # update_one() 只更新匹配到的第一条数据
    # update_many() 更新匹配到的所有数据
    newResult = collection.update_many(myQuery, newValue)
    # print(newResult.modified_count)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值