1 Star 0 Fork 0

读梦人/python_study

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
060-Python操作mongo.py 2.63 KB
一键复制 编辑 原始数据 按行查看 历史
读梦人 提交于 2023-08-28 23:08 . MongoDB-作业
#1、使用PyMongo
import pymongo
#2、连接MongoDB
client = pymongo.MongoClient(host='localhost', port=27017)
client2 = pymongo.MongoClient('mongodb://localhost:27017/')
#3、指定数据库(tera)
db = client.tera
db2 = client2['tera']
#4、指定集合
collection = db.tera
collection2 = db['tera']
#5、插入数据
"""
#1)insert_one()会返回InsertOneResult对象,可以调用inserted_id属性,获得_id
people = {'name': 'wzw', 'age': 25,'hobby': 'code'}
result = collection2.insert_one(people)
print(result.inserted_id)
print(result)
#2)插入多条insert_many()方法;注意:通过insert_one插入后,不能再次使用insert_many()插入,对象_id会重复,导致插入报错
people2 = {'name': 'wzw2', 'age': 25,'hobby': 'code'}
people3 = {'name': 'wzw3', 'age': 25,'hobby': 'code'}
result = collection.insert_many([people2, people3])
print(result)
print(result.inserted_ids)
"""
#6、查询
#1)普通查询
result = collection.find_one({'name': 'wzw'})
print(result)
#2)通过_id来查询,需要构建objectid对象,使用bson库
from bson.objectid import ObjectId
result = collection.find_one({'_id':ObjectId('64eca04b9c52deab56c077ec')})
print(result)
#3)查询多条数据
result = collection.find({'age': 25})
print(result) #result 结果集,是一个生成器对象
for i in result:
print(i)
#7、计数
#错误:count = collection.find().count() #未成功,因为collection.find()结果集是一个Cursor,没有count()的方法
#1)方法1
result = collection.find()
count = len(list(result))
print(count)
#2)方法2
count = collection.count_documents({})
print(count)
#8、排序
print('升序')
results = collection.find().sort('name', pymongo.ASCENDING)
#结果集cursor,输出name字段排序
print([result['name'] for result in results])
print('降序')
results = collection.find().sort('name', pymongo.DESCENDING)
print([result['name'] for result in results])
#9、更新
print('==============更新')
condition = {'name': 'wzw'}
people = collection.find_one(condition)
print(people)
#更新age为28
update = {'$set': {'age': 28}} #update = {'$inc': {'age': 1}} age+1
#更新第一条匹配到的值
#result = collection.update_one(condition, update)
#更新所有匹配到的值
result = collection.update_many(condition, update)
print(collection.find_one(condition))
#匹配条数、更新条数
print(result.matched_count,result.modified_count)
#10、删除
print('==========================删除')
result = collection.delete_one({'name': 'wzw1'})
result = collection.delete_many({'name': 'wzw'})
print(result,result.deleted_count)
res = collection.find()
for i in res:
print(i)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/w854090472/python_study.git
git@gitee.com:w854090472/python_study.git
w854090472
python_study
python_study
master

搜索帮助