欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MongoDB安装&Python操作MongoDB

程序员文章站 2024-01-23 10:58:10
...

1.MongoDB安装包下载:(感谢这位博主 百度网盘比官网快…)
https://blog.csdn.net/gao531162436/article/details/105785103/

2.MongoDB图形化管理工具下载:Robo3T(有很多图形化管理工具,选择Robo3T是因为轻量化而且免费)
链接:https://pan.baidu.com/s/1dZWbngfOW9W0KC78uWtirA
提取码:rnl9

3.安装的时候 不要勾选 不要勾选 不要勾选 Install MongoDB Compass(图形化管理工具)要不然要很久很久

4.安装时遇到了报错无法启动服务 后台也没有启动
service MongoDB failed to start,verify that you have sufficient privileges to start system services

安装路径是在F:\MongoDB 无法安装
我卸载MongoDB删除注册表后重启电脑重装还是不行,
后来把文件夹名字改成Sever就安装成功了(我也不知道为什么)
连接Robo3T教程:https://blog.csdn.net/wz6178/article/details/92067759

5.菜鸟驿站使用MongoDB教程:
https://www.runoob.com/mongodb/mongodb-tutorial.html

6.换源安装

pip install pymongo -i https://pypi.douban.com/simple/

7.python操作MongoDB教程:
https://developer.51cto.com/art/201805/573924.html

8.mongodb 常用操作符 也需要了解 想要更深入学习的话多看看官方文档!
https://pymongo.readthedocs.io/en/stable/tutorial.html

9.动手试试

前提是要启用了MongoDB

import pymongo

①连接数据库
(创建数据库,还有用户,集合,可以在终端操作也可以在图形界面操作)

# client = pymongo.MongoClient(host='localhost',port='27017')
client = pymongo.MongoClient('mongodb://localhost:27017/') 

②指定用户

# ursr_Elric = client['Elric']
user_Elric = client.Elric

③指定集合

# collection = Elric['Edward']
collection = Elric.Edward

④插入数据
三种方法:insert(),insert_one(),insert_many()

student = {  
    'birthday': '199804',  
    'name': 'Elric',  
    'age': 20,  
    'gender': 'male'  
} 
# insert(),insert_many()
collection.insert_one(student)

运行返回

<pymongo.results.InsertOneResult at 0x52a9a08>

查看数据库
MongoDB安装&Python操作MongoDB


⑤查询数据
find(),find_one()方法
结果不存在会返回None

# 先连接另外一个数据库
test_collection = Elric.Test
# 找到所有价格是99元的商品
price_100 = test_collection.find({'价格':99})
for price in price_100:
    print(price)
{'_id': ObjectId('5eafbacead4f133a8fe7ceee'), '店名': '楚韵香食品专营店', '商品名': '零食大礼包一整箱送女友儿童男生肉类猪饲料礼盒休闲小孩女生零食小吃薯片锅巴好吃的膨化食品麻辣混合装 精选零食100包', '价格': 99.0, '评论数': '90+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cf11'), '店名': '樱桃小丸子旗舰店', '商品名': '樱桃小丸子果肉果冻布丁吸吸巧克力山楂组合零食大礼包一整箱节日礼物 豪华C套餐  (送女友)', '价格': 99.0, '评论数': '8900+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cfaa'), '店名': '黄老五京东自营旗舰店', '商品名': '京东超市黄老五 休闲零食大礼包花生酥831g  四川特产 传统小吃糕点喜糖 送长辈送女友零食', '价格': 99.0, '评论数': '800+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cfab'), '店名': '喜利达食品饮料专营店', '商品名': '儿童零食大礼包组合吃货混合装一整箱健康营养小男女孩生日小吃盒送女生 红色 送女孩礼盒', '价格': 99.0, '评论数': '800+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cfac'), '店名': '中国特产·襄阳馆', '商品名': '【襄阳馆】襄梦 早餐食品零食大礼包下午茶休闲网红糕点 麻花大礼包:麻花 208g*6-猫耳朵208g*6', '价格': 99.0, '评论数': '800+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d0bd'), '店名': '三圣宫食品旗舰店', '商品名': '三圣宫 【满199减100】达州七星椒招牌菜无骨套餐下酒菜卤味零食大礼包香辣味卤牛肚鸭胗鸭菌把豆腐干 香辣味', '价格': 99.0, '评论数': '700+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d0f0'), '店名': '味滋源官方旗舰店', '商品名': '味滋源零食大礼包 网红巨型零食芒果干鸭脖每日坚果饼干节日礼物2365g 40种零食组合', '价格': 99.0, '评论数': '70+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d103'), '店名': '京东超星选自营店', '商品名': '京东超市超星选x环球臻味 坚果礼盒幸福物语2100g 孕妇混合干果零食每日坚果炒货礼盒大礼包送礼开心果巴旦木', '价格': 99.0, '评论数': '7.2万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d154'), '店名': '盼盼京东自营旗舰店', '商品名': '京东超市盼盼巨型肩扛零食大礼包  猪饲料送女友礼盒面包饼干蛋糕膨化休闲零食', '价格': 99.0, '评论数': '6600+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d205'), '店名': '卡巴熊旗舰店', '商品名': '德多 休闲零食大礼包京东麻辣礼盒超市好吃的一整箱送女友儿童女生团购 S-1', '价格': 99.0, '评论数': '600+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d22a'), '店名': '沃隆官方旗舰店', '商品名': '沃隆 每日坚果 休闲零食 坚果炒货 腰果 榛子 核桃 巴旦木 干果大礼包孕妇礼盒 京东定制525g/盒', '价格': 99.0, '评论数': '6.8万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d243'), '店名': '棒棒娃京东自营旗舰店', '商品名': '京东超市棒棒娃 休闲牛肉干肉脯零食 灯影牛肉丝香辣味120g*3 四川特产 手撕蜀香肉类熟食小吃 大礼包独立装', '价格': 99.0, '评论数': '6.2万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d2cb'), '店名': '来伊份旗舰店', '商品名': '来伊份零食大礼包女网红小吃一箱女生休闲食品(新旧包装随机发货) 放肆礼盒1290g', '价格': 99.0, '评论数': '5100+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d2dc'), '店名': '俏香阁旗舰店', '商品名': '【300减210】俏香阁 卤味零食大礼包 肉干肉脯 熟食小吃 鸭肉 卤味大礼包500g', '价格': 99.0, '评论数': '5000+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d362'), '店名': '源氏食品官方旗舰店', '商品名': '【满99减40】源氏 新年礼包1348g 年货休闲零食大礼包嗨辣*儿时怀旧辣条组合素肉 嗨辣*大礼包【1348g】', '价格': 99.0, '评论数': '50+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d394'), '店名': '盼盼旗舰店', '商品名': '【神券199减125】盼盼 糕点零食大礼包 猪饲料干蛋糕蛋黄派铜锣烧肉松饼花生牛奶 软华夫 解馋版', '价格': 99.0, '评论数': '5.1万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d3bc'), '店名': '聚缘坊食品专营店', '商品名': '喜之郎果肉果冻大杯装200g整箱批发儿童零食布丁什锦大礼包办公室休闲零食 混合口味24杯 整箱', '价格': 99.0, '评论数': '4900+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d3bd'), '店名': '聚缘坊食品专营店', '商品名': '喜之郎果肉果冻大杯装200g整箱批发儿童零食布丁什锦大礼包办公室休闲零食 什锦果肉24杯 整箱', '价格': 99.0, '评论数': '4900+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d3be'), '店名': '聚缘坊食品专营店', '商品名': '喜之郎果肉果冻大杯装200g整箱批发儿童零食布丁什锦大礼包办公室休闲零食 葡萄苹果24杯 整箱', '价格': 99.0, '评论数': '4900+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d3ee'), '店名': '沃隆京东自营旗舰店', '商品名': '京东超市沃隆 每日坚果 休闲零食 坚果炒货 扁桃仁腰果榛子核桃 京东定制(25g*21)525g 送礼零食大礼包礼盒', '价格': 99.0, '评论数': '46万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d4c7'), '店名': '盐津铺子京东自营旗舰店', '商品名': '盐津铺子 休闲零食大礼包一整箱送女友女生儿童网红礼盒食品超市吃的组合装2256g', '价格': 99.0, '评论数': '400+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d4c8'), '店名': '双宿食品专营店', '商品名': '网红零食大礼包70包美味送男女友小孩儿童圣诞节一整箱好吃的休闲含进口吃货零食小吃组合520礼物 凯蒂猫(女孩版)', '价格': 99.0, '评论数': '400+'}
...

当然也可以用Id查询你要的数据

from bson.objectid import ObjectId   
result = test_collection.find_one({'_id': ObjectId('5eafbacead4f133a8fe7d3bc')})
{'_id': ObjectId('5eafbacead4f133a8fe7d3bc'),
 '店名': '聚缘坊食品专营店',
 '商品名': '喜之郎果肉果冻大杯装200g整箱批发儿童零食布丁什锦大礼包办公室休闲零食 混合口味24杯 整箱',
 '价格': 99.0,
 '评论数': '4900+'}

使用操作符查询

# 查找价格100到150之间的数据
results = test_collection.find({'价格':{'$gt':100 , '$lt':150}})
for result in results:
    print(result)
{'_id': ObjectId('5eafbacead4f133a8fe7ce5e'), '店名': '百草味京东自营旗舰店', '商品名': '百草味 易烊千玺同款坚果礼盒零食礼包30袋 开心果核桃巴旦木送礼送女友 每日坚果750g/盒', '价格': 136.0, '评论数': '97万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7ced6'), '店名': '涵臣食品专营店', '商品名': '进口零食大礼包一箱整猪饲料充饥夜宵送女友女生男生友休闲食品小吃散装网红混搭自选儿童休闲食品小吃 【开心鸭款50包】再送【再来一箱50包】共...', '价格': 148.8, '评论数': '900+'}
{'_id': ObjectId('5eafbacead4f133a8fe7ceef'), '店名': '中国特产·成都馆', '商品名': '【成都馆】黄老五 花生酥 酥服礼盒装 1205g 零食礼盒 大礼包 送礼四川特产零食糕点', '价格': 138.0, '评论数': '90+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cf03'), '店名': '俏香阁京东自营旗舰店', '商品名': '京东超市俏香阁 零食大礼包 每日坚果礼盒 混合大礼包 干果零食   夏威夷果碧根果10袋装 吉祥如意1583g', '价格': 139.0, '评论数': '9.3万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cf04'), '店名': '俏香阁京东自营旗舰店', '商品名': '京东超市俏香阁 零食大礼包 每日坚果礼盒 混合大礼包 坚果干果零食  夏威夷果巴旦木碧根果 福庆团圆1797g', '价格': 149.0, '评论数': '9.3万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cf0d'), '店名': '俏香阁旗舰店', '商品名': '【满300减210】俏香阁 蜜饯果干组合 葡萄干芒果干杏干草莓干山楂条 办公休闲零食组合 果干零食790g 7袋', '价格': 109.0, '评论数': '8万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cf3a'), '店名': '稻香村自营官方旗舰店', '商品名': '京东超市稻香村坚果干果礼盒 炒货零食大礼包每日坚果750g', '价格': 125.0, '评论数': '8600+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cf56'), '店名': '时美味食品专营店', '商品名': '百草味 水果干大礼包葡萄干芒果干果脯混合装零食干果蜜饯美食小吃一整箱休闲食品好吃的送女友干果果铺 二十一款组合', '价格': 119.9, '评论数': '8400+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cfad'), '店名': '青松食品专营店', '商品名': '百草味水果干零食大礼包芒果干组合送女生混合装一整箱果脯蜜饯休闲食品小吃 17款果干(喂饱你礼盒)', '价格': 105.8, '评论数': '800+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cfae'), '店名': '青松食品专营店', '商品名': '百草味水果干零食大礼包芒果干组合送女生混合装一整箱果脯蜜饯休闲食品小吃 17款果干(我的女神礼盒)', '价格': 105.8, '评论数': '800+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cfaf'), '店名': '青松食品专营店', '商品名': '百草味水果干零食大礼包芒果干组合送女生混合装一整箱果脯蜜饯休闲食品小吃 17款果干(世界那么大礼盒)', '价格': 105.8, '评论数': '800+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cfb0'), '店名': '中国特产·襄阳馆', '商品名': '【襄阳馆】襄梦 早餐食品零食大礼包下午茶休闲网红糕点 麻花-松塔-锅巴-山楂-猫耳朵-蔬菜卷-拉面丸子', '价格': 109.0, '评论数': '800+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cfb1'), '店名': '青松食品专营店', '商品名': '百草味水果干零食大礼包芒果干组合送女生混合装一整箱果脯蜜饯休闲食品小吃 24款果干(青松箱)', '价格': 121.8, '评论数': '800+'}
...

正则查询

# 查询商品名中含有三只松鼠的数据
results = test_collection.find({'商品名':{'$regex':'.*三只松鼠.*'}})
for result in results:
    print(result)
{'_id': ObjectId('5eafbacead4f133a8fe7ce82'), '店名': '三只松鼠旗舰店', '商品名': '【满300减210】三只松鼠坚果大礼包1463g红黄款碧根果果干每日坚果零食批发礼品 1463g', '价格': 197.8, '评论数': '94万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7ce90'), '店名': '三只松鼠京东自营旗舰店', '商品名': '京东超市三只松鼠坚果大礼包8袋 每日坚果网红零食干果礼盒碧根果节日送礼1428g(新老套餐混发)', '价格': 199.0, '评论数': '90万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cf0a'), '店名': '三只松鼠旗舰店', '商品名': '【满300减210】三只松鼠 休闲零食  粗粮8点半 粗粮麦片140g/盒 营养果干粗粮麦片即食 140g', '价格': 37.8, '评论数': '8万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cf39'), '店名': '三只松鼠旗舰店', '商品名': '三只松鼠零食大礼包含芒果干花生沙琪玛麻花锅巴 663g', '价格': 79.0, '评论数': '8600+'}
{'_id': ObjectId('5eafbacead4f133a8fe7cffe'), '店名': '三只松鼠旗舰店', '商品名': '三只松鼠_食力果干大礼包1380g/10袋休闲零食蜜饯果干芒果干 1380', '价格': 89.0, '评论数': '8'}
{'_id': ObjectId('5eafbacead4f133a8fe7d009'), '店名': '三只松鼠旗舰店', '商品名': '三只松鼠 休闲零食组合含碧根果748g 748g', '价格': 79.0, '评论数': '7900+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d051'), '店名': '三只松鼠旗舰店', '商品名': '【旗舰新品】三只松鼠 休闲零食 每日鸭脖500g/箱 鸭脖零食大礼包卤味熟食鸭脖子分享装甜辣味 1箱', '价格': 41.8, '评论数': '7400+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d058'), '店名': '三只松鼠旗舰店', '商品名': '【满300减210】三只松鼠 休闲零食  和风麻薯150g/袋 抹茶麻薯 糕点点心美食早抹茶餐 香芒味', '价格': 16.8, '评论数': '73万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d05e'), '店名': '三只松鼠旗舰店', '商品名': '三只松鼠_红黄款坚果大礼包1393g/7袋装碧根果夏威夷果礼盒休闲零食过年礼盒', '价格': 88.0, '评论数': '72万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d097'), '店名': '汇多多休闲食品专营店', '商品名': '三只松鼠 休闲零食小吃  坚果大礼包孕妇零食榛子巴旦木开心果夏威夷果花生瓜子碧根果松子罐头 蟹黄味瓜子仁/218g', '价格': 28.8, '评论数': '700+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d0a1'), '店名': '汇多多休闲食品专营店', '商品名': '三只松鼠 休闲零食小吃  坚果大礼包孕妇零食榛子巴旦木开心果夏威夷果花生瓜子碧根果松子罐头 悟空麻花/108g', '价格': 34.5, '评论数': '700+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d0a7'), '店名': '汇多多休闲食品专营店', '商品名': '三只松鼠 休闲零食小吃  坚果大礼包孕妇零食榛子巴旦木开心果夏威夷果花生瓜子碧根果松子罐头 手剥巴旦木/160g', '价格': 39.8, '评论数': '700+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d0a9'), '店名': '汇多多休闲食品专营店', '商品名': '三只松鼠 休闲零食小吃  坚果大礼包孕妇零食榛子巴旦木开心果夏威夷果花生瓜子碧根果松子罐头 碧根果/160g', '价格': 39.8, '评论数': '700+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d0c5'), '店名': '三只松鼠旗舰店', '商品名': '三只松鼠京彩有礼坚果大礼包1898g/11袋礼盒零食含核桃仁碧根果夏威夷果一整箱 1898g', '价格': 148.0, '评论数': '700+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d10b'), '店名': '状元优选旗舰店', '商品名': '三只松鼠每日坚果大礼包 孕妇零食节日礼物 混合干果礼盒 家庭分享装 750g/盒', '价格': 139.0, '评论数': '7'}
{'_id': ObjectId('5eafbacead4f133a8fe7d10c'), '店名': '三只松鼠旗舰店', '商品名': '三只松鼠_宠爱大礼包巨型零食大礼包松女友送礼生日礼物零食大礼包儿童零食 约4.4斤混发', '价格': 149.0, '评论数': '7'}
{'_id': ObjectId('5eafbacead4f133a8fe7d136'), '店名': '三只松鼠旗舰店', '商品名': '三只松鼠水果干零食大礼包一整箱1096g/8袋 蜜饯小吃芒果葡萄菠萝红薯干山楂西梅 1096g', '价格': 68.8, '评论数': '6700+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d14e'), '店名': '三只松鼠旗舰店', '商品名': '三只松鼠 零食大礼包送女友休闲零食组合整箱批发混合装小吃组合542g含巴旦木 542g', '价格': 79.0, '评论数': '6600+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d157'), '店名': '三只松鼠京东自营旗舰店', '商品名': '京东超市三只松鼠宠爱巨型零食礼包20袋 零食大礼包儿童零食鸭肉零食坚果果干薯片锅巴/4.5斤', '价格': 159.0, '评论数': '65万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d158'), '店名': '三只松鼠京东自营旗舰店', '商品名': '京东超市三只松鼠巨型零食大礼包/内含30包 肩扛大礼包生日礼物节日儿童零食薯片饼干锅巴糖果2.0升级版/3409g', '价格': 189.0, '评论数': '65万+'}
{'_id': ObjectId('5eafbacead4f133a8fe7d222'), '店名': '宝食捷休闲食品专营店', '商品名': '零食大礼包网红一箱果干芒果干组合女三只松鼠同款整箱果脯水果干混合装食品送女友夜宵充饥零食 套餐三(追剧指南)', '价格': 91.8, '评论数': '60+'}
...

⑥计数

# 统计价格为99的有多少条数据
count = test_collection.find({'价格':99}).count()  
print(count) 
58

⑦排序

# 将价格100~150升序排列
# pymongo.DESCENDING降序
results = test_collection.find({'价格':{'$gt':100 , '$lt':150}}).sort('价格', pymongo.ASCENDING)  
print([result['价格'] for result in results]) 
[100.9, 101.0, 102.0, 103.0, 105.0, 105.0, 105.0, 105.8, 105.8, 105.8, 107.9, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 108.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.9, 109.9, 109.9, 109.9, 109.9, 110.0, 110.9, 113.0, 113.81, 115.0, 115.0, 115.0, 115.0, 115.0, 115.0, 115.0, 115.0, 115.0, 115.0, 115.0, 115.0, 115.0, 115.0, 115.0, 115.8, 116.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.0, 118.8, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.0, 119.2, 119.8, 119.9, 119.9, 121.8, 125.0, 125.0, 125.0, 125.0, 125.8, 125.8, 125.8, 125.8, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.0, 128.8, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.0, 129.8, 129.8, 129.8, 129.8, 129.8, 129.9, 130.0, 130.0, 130.0, 132.0, 133.0, 136.0, 136.0, 136.0, 136.8, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 138.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.0, 139.9, 145.0, 145.0, 145.0, 145.0, 145.0, 145.0, 146.0, 146.0, 146.0, 146.88, 146.88, 146.88, 147.0, 147.8, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.0, 148.8, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.0, 149.8, 149.8, 149.9, 149.9, 149.9, 149.9, 149.9, 149.9]

⑧偏移

# 跳过前300个数据 取10个数据
results = test_collection.find({'价格':{'$gt':100 , '$lt':150}}).skip(300).limit(10)
print([result['价格'] for result in results])
[109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 109.0, 119.0, 146.88]

注意的是,在数据库数量非常庞大的时候,如千万、亿级别,不要使用大的偏移量来查询数据,因为这样很可能导致内存溢出。此时可以使用类似如下操作来查询:

collection.find({'_id': {'$gt': ObjectId('593278c815c2602678bb2b8d')}})

⑨更新
update(更新的条件,更新后的数据),update_one()
update_many(更新条件,{’$set’:更新后的数据})

# 把价格改为9999.0
id = {'_id': ObjectId("5eafbacead4f133a8fe7ce58")}
data = test_collection.find_one(id)
data['价格']=9999.0
result = test_collection.update(id,data)
print(result)
{'n': 1, 'nModified': 1, 'ok': 1.0, 'updatedExisting': True}

MongoDB安装&Python操作MongoDB


⑩删除
remove(),delete_one()和delete_many()

result = test_collection.delete_one(id)  
print(result)  
<pymongo.results.DeleteResult object at 0x0000000005782F48>
相关标签: 数据库