Python3 操作MongoDB数据库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python3 操作MongoDB数据库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6147字,纯文字阅读大概需要9分钟。
内容图文
以上一篇的数据为例子。
In [1]: import pymongo #引入pymongo模块
In [2]: client = pymongo.MongoClient(host = 'localhost',port = 27017) #进行连接
In [3]: db = client.maoyan #指定数据库
In [4]: collection = db.MaoyanItem #指定集合
这样我们便声明了一个Collection 对象。
一.查询操作
In [6]: result = collection.find_one({'movie':'霸王别姬'})
In [7]: print (result)
{'_id': ObjectId('5bb94c820f99846600edcb13'), 'movie': '霸王别姬', 'actor': '主
演:张国荣,张丰毅,巩俐', 'release': '上映时间:1993-01-01', 'score': '9.6'}
查找评分为9.2分的电影。
In [8]: results = collection.find({'score':'9.2'})
In [9]: for result in results:
...: print (result['movie'])
...:
唐伯虎点秋香
魂断蓝桥
喜剧之王
辛德勒的名单
春光乍泄
海上钢琴师
指环王3:王者无敌
天堂电影院
盗梦空间
速度与激情5
甜蜜蜜
英雄本色
查找评分大于9.2分的电影。
In [13]: results = collection.find({'score':{'$gt':'9.2'}})
In [14]: for result in results:
...: print (result['movie'],result['score'])
...:
霸王别姬 9.6
肖申克的救赎 9.5
这个杀手不太冷 9.5
教父 9.3
泰坦尼克号 9.5
千与千寻 9.3
美丽人生 9.3
蝙蝠侠:黑暗骑士 9.3
机器人总动员 9.3
忠犬八公的故事 9.3
疯狂原始人 9.5
大话西游之月光宝盒 9.6
比较符号。
正则匹配查询。例如查找评分在9.0以上的电影:
In [18]: results = collection.find({'score':{'$regex':'^9.*'}})
In [19]: for result in results:
...: print (result['movie'],result['score'])
...:
霸王别姬 9.6
罗马假日 9.1
肖申克的救赎 9.5
这个杀手不太冷 9.5
教父 9.3
泰坦尼克号 9.5
唐伯虎点秋香 9.2
千与千寻 9.3
魂断蓝桥 9.2
乱世佳人 9.1
喜剧之王 9.2
天空之城 9.1
大闹天宫 9.0
辛德勒的名单 9.2
音乐之声 9.0
春光乍泄 9.2
美丽人生 9.3
海上钢琴师 9.2
黑客帝国 9.0
指环王3:王者无敌 9.2
哈利·波特与魔法石 9.1
无间道 9.1
蝙蝠侠:黑暗骑士 9.3
教父2 9.0
指环王2:双塔奇兵 9.1
机器人总动员 9.3
活着 9.0
天堂电影院 9.2
盗梦空间 9.2
哈尔的移动城堡 9.0
忠犬八公的故事 9.3
疯狂原始人 9.5
阿凡达 9.0
十二怒汉 9.1
速度与激情5 9.2
驯龙高手 9.0
神偷奶爸 9.0
三傻大闹宝莱坞 9.1
断背山 9.0
美国往事 9.1
少年派的奇幻漂流 9.1
哈利·波特与死亡圣器(下) 9.0
大话西游之月光宝盒 9.6
倩女幽魂 9.1
无敌破坏王 9.0
触不可及 9.1
甜蜜蜜 9.2
素媛 9.1
小鞋子 9.1
萤火之森 9.0
穿条纹睡衣的男孩 9.0
窃听风暴 9.0
忠犬八公物语 9.0
七武士 9.1
海洋 9.0
爱·回家 9.0
我爱你 9.0
迁徙的鸟 9.1
英雄本色 9.2
功能符号
计数:
In [20]: collection.find().count() #所有数据条数
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts\ipython:1:
DeprecationWarning: count is deprecated. Use Collection.count_documents instead
.
Out[20]: 100
In [21]: collection.find({'score':{'$gt':'9.2'}}).count() #评分大于9.2分的电影数
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts\ipython:1:
DeprecationWarning: count is deprecated. Use Collection.count_documents instead
.
Out[21]: 12
排序:
In [23]: results = collection.find().sort('score',pymongo.ASCENDING)
In [24]: for result in results:
...: print (result['movie'],result['score'])
...:
剪刀手爱德华 8.8
搏击俱乐部 8.8
V字仇杀队 8.8
勇敢的心 8.8
黑客帝国3:矩阵革命 8.8
闻香识女人 8.8
飞越疯人院 8.8
致命魔术 8.8
美丽心灵 8.8
夜访吸血鬼 8.8
钢琴家 8.8
本杰明·巴顿奇事 8.8
魔女宅急便 8.8
初恋这件小事 8.8
熔炉 8.8
新龙门客栈 8.8
大话西游之大圣娶亲 8.8
地球上的星星 8.8
恐怖直播 8.8
借东西的小人阿莉埃蒂 8.8
辩护人 8.8
加勒比海盗 8.9
楚门的世界 8.9
射雕英雄传之东成西就 8.9
拯救大兵瑞恩 8.9
东邪西毒 8.9
幽灵公主 8.9
风之谷 8.9
放牛班的春天 8.9
当幸福来敲门 8.9
飞屋环游记 8.9
怦然心动 8.9
鬼子来了 8.9
蝙蝠侠:黑暗骑士崛起 8.9
时空恋旅人 8.9
7号房的礼物 8.9
海豚湾 8.9
上帝之城 8.9
一一 8.9
完美的世界 8.9
黄金三镖客 8.9
大闹天宫 9.0
偏移:
In [25]: results = collection.find().sort('score',pymongo.ASCENDING).skip(80)
#skip(80)表示偏移前面80个数据,即只需要后面20个数据
In [26]: for result in results:
...: print (result['movie'],result['score'])
...:
春光乍泄 9.2
海上钢琴师 9.2
指环王3:王者无敌 9.2
天堂电影院 9.2
盗梦空间 9.2
速度与激情5 9.2
甜蜜蜜 9.2
英雄本色 9.2
教父 9.3
千与千寻 9.3
美丽人生 9.3
蝙蝠侠:黑暗骑士 9.3
机器人总动员 9.3
忠犬八公的故事 9.3
肖申克的救赎 9.5
这个杀手不太冷 9.5
泰坦尼克号 9.5
疯狂原始人 9.5
霸王别姬 9.6
大话西游之月光宝盒 9.6
限制:
In [27]: results = collection.find().sort('score',pymongo.ASCENDING).skip(80).l
...: imit(5)
#limit(5)表示只取前面5条数据
In [28]: for result in results:
...: print (result['movie'],result['score'])
...:
春光乍泄 9.2
海上钢琴师 9.2
指环王3:王者无敌 9.2
天堂电影院 9.2
盗梦空间 9.2
更新:
更新”霸王别姬“的评分为9.9分。
In [29]: condition = {'movie':"霸王别姬"}
In [30]: movie = collection.find_one(condition)
In [31]: movie['score'] = "9.9"
In [32]: result = collection.update(condition,movie) #调用update方法
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts\ipython:1:
DeprecationWarning: update is deprecated. Use replace_one, update_one or update
_many instead.
In [33]: print (result) # ok表示成功,nModified表示更新的数据条数
{'n': 1, 'nModified': 1, 'ok': 1.0, 'updatedExisting': True}
In [34]: movie = collection.find_one(condition)
In [35]: print (movie) #结果显示评分为9.9,表示已经更新成功了。
{'_id': ObjectId('5bb94c820f99846600edcb13'), 'movie': '霸王别姬', 'actor': '主
演:张国荣,张丰毅,巩俐', 'release': '上映时间:1993-01-01', 'score': '9.9'}
删除:
In [36]: collection.find({'score':'9.5'}).count() #查找评分为9.5分的电影条数
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts\ipython:1:
DeprecationWarning: count is deprecated. Use Collection.count_documents instead
.
Out[36]: 4
In [37]: collection.delete_many({'score':'9.5'}) #删除评分为9.5分的电影
Out[37]: <pymongo.results.DeleteResult at 0x9264674988>
In [38]: collection.find({'score':'9.5'}).count() #查找结果为0,说明删除成功
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts0\ipython:1:
DeprecationWarning: count is deprecated. Use Collection.count_documents instead
.
Out[38]: 0
In [39]: collection.find().count() #只剩下96条数据
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts\ipython:1:
DeprecationWarning: count is deprecated. Use Collection.count_documents instead
.
Out[39]: 96
内容总结
以上是互联网集市为您收集整理的Python3 操作MongoDB数据库全部内容,希望文章能够帮你解决Python3 操作MongoDB数据库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。