PyMongo 10分钟快速上手,拿来即用

用了一段时间的MongoDB,整理下知识点,本文注重实用,给出示例代码,持续更新。

PyMongo

安装

pip install pymongo

建立连接

from pymongo import MongoClient
client = MongoClient("127.0.0.1:27001")
db = client.mydb # user database

常用SQL

CRUD
# select
cursor = db.student.find({"borough":"Manhattan"})
# insert
db.student.insert_one({"grade": "one", "class": 3,"age":12,"name":"LiLei"})
# update
result = db.student.update_many(
    {"grade": "one", "class": 3},
    {"$set": {"age": 13}}
)
# delete
result = db.student.delete_many({"age": 18})
count
db.student.count() # 直接返回数目

还可以用 cursor.count() 获得数目

操作符

比较操作符: $gt 大于 $lt 小于 $gte 大于等于 $lte 小于等于

db.student.find({"age":{"$gte":12}}) 
db.student.find({"age":{"$lte":12}}) 
db.student.find({"age":{"$lte":12}}) 

$or $and 组合操作符表示逻辑或与:

db.student.find({"$and":[{"age":{"$gte":12}},"grade":5]}) 
db.student.find({"$or":[{"age":{"$gte":12}},"grade":5]})

GroupBy用法

# aggregate()用于多步操作
# 类似于pipe流执行每一步:
cursor = db.student.aggregate(
    [
        {"$group": {"_id": "$grade", "count": 	{"$sum": 1}}}
    ]
)

排序

cursor = db.student.find().sort([
    ("age", pymongo.ASCENDING),
    ("grade", pymongo.ASCENDING)
])

创建索引

db.student.create_index([
("grade", pymongo.ASCENDING),
("class", pymongo.ASCENDING)
])

高效遍历大表:(可快速遍历亿级容量的大表)

# 此处cursor为无限加载的流,直到读完整个表
cursor = db.company.find({}, {"Name": 1, "age": 1}, cursor_type=cursor.CursorType.EXHAUST,no_cursor_timeout=True).batch_size(10000)
for result in cursor:
	#handel result

相关资源,想要深入了解的同学可以去这里找

MongoDb官方文档
PyMongo文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值