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文档

猜你喜欢

转载自blog.csdn.net/iamcodingmylife/article/details/84992264