網(wǎng)站的登錄注冊怎么做希愛力
本文內(nèi)容主要為使用Python 對Mongodb數(shù)據(jù)庫的一些基本操作整理。
目錄
安裝類庫
操作實例
引用類庫
連接服務(wù)器
連接數(shù)據(jù)庫
添加文檔
添加單條
批量添加
查詢文檔
查詢所有文檔
查詢部分文檔
使用id查詢
統(tǒng)計查詢
排序
分頁查詢
更新文檔
update_one方法
update_many方法
刪除文檔
delete_one方法
delete_many方法
總結(jié)
安裝類庫
打開命令行執(zhí)行以下命令:
pip install pymongo
安裝過程如下:
操作實例
引用類庫
首先需要引入mongodb的操作類庫,示例如下:
from pymongo import MongoClient
連接服務(wù)器
conn = MongoClient('localhost', 27017)
連接數(shù)據(jù)庫
db = conn.mydb
添加文檔
添加單條
使用insert_one()方法,添加一個學生記錄。
示例如下:
from pymongo import MongoClientconn = MongoClient('localhost', 27017)db = conn.mydb
student = db.student
student.insert_one({'name': 'zhangsan', 'age': 20, 'gender': 1, 'address': '北京海淀區(qū)', 'isDel': 0})# 關(guān)閉
conn.close()
批量添加
使用insert_many()方法,添加多個學生記錄。
示例如下:
from pymongo import MongoClientconn = MongoClient('localhost', 27017)db = conn.mydb
collection = db.student
# 批量
collection.insert_many([{'name': '李四', 'age': 18, 'gender': 0, 'address': '北京海淀區(qū)', 'isDel': 0},{'name': '王五', 'age': 21, 'gender': 1, 'address': '北京昌平區(qū)', 'isDel': 0},{'name': '趙六', 'age': 19, 'gender': 0, 'address': '北京朝陽區(qū)', 'isDel': 0}
])# 關(guān)閉
conn.close()
查詢文檔
使用查詢方法,查詢剛才插入的數(shù)據(jù)。根據(jù)查詢條件不同分為以下類型。
查詢所有文檔
沒有查詢條件即查詢集合中所有記錄。
示例如下:
from pymongo import MongoClientconn = MongoClient('localhost', 27017)collection = conn.mydb.studentres = collection.find()
for row in res:print(row)print(type(row))conn.close()
執(zhí)行結(jié)果:
?
查詢部分文檔
通過設(shè)置查詢條件為小于20歲的學生,來查詢符合條件的部分數(shù)據(jù)。
示例如下:
res = collection.find({'age': {'$gt': 20}})
for row in res:print(row)print(type(row))
執(zhí)行結(jié)果:
?
使用id查詢
使用id查詢與mysql不同,需要使用id生成器來轉(zhuǎn)化id字符串后在進行查詢。
示例如下:
from bson.objectid import ObjectId
info = collection.find({'_id':ObjectId('666bbb5b8d4817f169319d61')})
print(info)
print(type(info))
print(info[0])
打印為對象類型,可獲取其第一個元素。
執(zhí)行結(jié)果:
?
統(tǒng)計查詢
對符合查詢條件的記錄進行數(shù)量統(tǒng)計。
示例如下:
res = collection.count_documents({'age': {'$gte': 20}})
print(res)
執(zhí)行結(jié)果:
3
排序
默認升序 pymongo.DESCENDING倒序。
示例如下:
import pymongo
from pymongo import MongoClientconn = MongoClient('localhost', 27017)collection = conn.mydb.student# 默認升序 pymongo.DESCENDING倒序
res = collection.find().sort('age', pymongo.DESCENDING)
for row in res:print(row)
分頁查詢
通過skip()和limit()方法實現(xiàn)分頁。
示例如下:
from pymongo import MongoClientconn = MongoClient('localhost', 27017)collection = conn.mydb.studentres = collection.find().skip(2).limit(5)
for row in res:print(row)
更新文檔
update_one方法
只會修改符合條件的第一條記錄。
示例如下:
info = collection.update_one({'name': 'zhangsan'}, {'$set': {'name': '李雷'}})
print(info)
執(zhí)行結(jié)果:
# 修改成功
# UpdateResult({'n': 1, 'nModified': 1, 'ok': 1.0, 'updatedExisting': True}, acknowledged=True)
# 沒有找到符合記錄,未修改
# UpdateResult({'n': 0, 'nModified': 0, 'ok': 1.0, 'updatedExisting': False}, acknowledged=True)
update_many方法
會修改所有符合條件的記錄。
示例如下:
info = collection.update_many({'name': '李四'}, {'$set': {'name': '李武'}})
print(info)
執(zhí)行結(jié)果:
UpdateResult({'n': 2, 'nModified': 2, 'ok': 1.0, 'updatedExisting': True}, acknowledged=True)
刪除文檔
刪除文檔也有兩個方法。
delete_one方法
刪除符合條件的第一條記錄。
示例如下:
info = collection.delete_one({'name': '李雷'})
print(info)
delete_many方法
刪除符合條件的所有記錄。
示例如下:
info = collection.delete_many({'age': {'$gte': 20}})
print(info)
執(zhí)行結(jié)果:
DeleteResult({'n': 2, 'ok': 1.0}, acknowledged=True)
總結(jié)
本文內(nèi)容主要為使用Python 對Mongodb數(shù)據(jù)庫的一些基本操作整理。