pymongo基本使用
来自 https://www.runoob.com/python3/python-mongodb-insert-document.html
连接数据库并获取对应集合
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["runoobdb"]
mycol = mydb["sites"]
插入一条数据
mydict = { "name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com" }
# 指定id插入
# mydict = { "_id": 1, "name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com" }
x = mycol.insert_one(mydict)
#返回id
x.inserted_id
插入多条数据
mylist = [
{ "name": "Taobao", "alexa": "100", "url": "https://www.taobao.com" },
{ "name": "QQ", "alexa": "101", "url": "https://www.qq.com" },
{ "name": "Facebook", "alexa": "10", "url": "https://www.facebook.com" },
{ "name": "知乎", "alexa": "103", "url": "https://www.zhihu.com" },
{ "name": "Github", "alexa": "109", "url": "https://www.github.com" }
]
x = mycol.insert_many(mylist)
#返回ids
x.inserted_id
查询数据
#查询一条
x = mycol.find_one()
# 查询所有
for x in mycol.find():
print(x)
# 指定返回字段
for x in mycol.find({},{ "_id": 0, "name": 1, "alexa": 1 }):
print(x)
# 条件查询
myquery = { "name": "RUNOOB" }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
# 模糊匹配
myquery = { "name": { "$regex": "^R" } }
mydoc = mycol.find(myquery)
# 指定返回数据条数
myresult = mycol.find().limit(3)
修改数据
#修改一条
myquery = { "alexa": "10000" }
newvalues = { "$set": { "alexa": "12345" } }
mycol.update_one(myquery, newvalues)
# 修改多条
myquery = { "name": { "$regex": "^F" } }
newvalues = { "$set": { "alexa": "123" } }
x = mycol.update_many(myquery, newvalues)
print(x.modified_count, "文档已修改")
删除数据
#删除一条
myquery = { "name": "Taobao" }
mycol.delete_one(myquery)
#删除多条
myquery = { "name": {"$regex": "^F"} }
x = mycol.delete_many(myquery)
#删除集合下所有数据
x = mycol.delete_many({})
#删除集合
mycol.drop()
排序
# 排序
mydoc = mycol.find().sort("alexa")
# 倒序
mydoc = mycol.find().sort("alexa", -1)