使用python完成mongodb數據庫的增刪改查
使用Python遠程操作MongoDB數據庫
沒有下載MongoDB朋友,可以看看ubuntu下載mongoDB
1. mongdb和Python交互的模塊
pymongo 提供了mongdb和python交互的所有方法
安裝方式: pip install pymongo
2. 使用pymongo
數據庫和集合能夠自動創建
from pymongo import MongoClient client = MongoClient(host,port) # 如果是本地連接host,port參數可以省略 collection = client[db名][集合名] # collection = client.db名.集合名 # 與上邊用法相同
1
2
3
4
5
6
from pymongo import MongoClient from urllib.parse import quote_plus user = 'python' # 賬號 password = 'python' # 密碼 host = '127.0.0.1' # host port = 27017 # port uri = "mongodb://%s:%s@%s" % (quote_plus(user), quote_plus(password), host) # quote_plus函數:對url進行編碼 # uri = mongodb://python:python@127.0.0.1 client = MongoClient(uri, port=port) collection = client.db名.集合名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
insert可以批量的插入數據列表,也可以插入一條數據
collection.insert({一條數據}) collection.insert([{數據一},{數據二}])
1
2
返回插入數據的_id
ret = collection.insert({"name":"test10010","age":33}) print(ret)
1
2
返回ObjectId對象構成的列表
item_list = [{"name":"test1000{}".format(i)} for i in range(10)] rets = collection.insert(item_list) print(rets) for ret in rets: print(ret)
1
2
3
4
5
接收一個字典形式的條件,返回字典形式的整條數據
如果條件為空,則返回第一條
ret = client.test.test.find_one({'name': 'test10001'}) print(ret) # 包含mongodb的ObjectId對象的字典 _ = ret.pop('_id') # 清除mongodb的ObjectId對象的k,v print(ret)
1
2
3
4
返回所有滿足條件的結果,如果條件為空,則返回全部
結果是一個Cursor游標對象,是一個可迭代對象,可以類似讀文件的指針,但是只能夠進行一次讀取
rets = collection.find({"name":"test10005"}), for ret in rets: print(ret) for ret in rets: #此時rets中沒有內容 print(ret)
1
2
3
4
5
語法:collection.update({條件}, {’$set’:{指定的kv或完整的一條數據}}, multi=False/True, upsert=False/True)
multi參數:默認為False,表示更新一條; multi=True則更新多條; multi參數必須和$set一起使用
upsert參數:默認為False; upsert=True則先查詢是否存在,存在則更新;不存在就插入
$set表示指定字段進行更新
data = {'msg':'這是一條完整的數據1','name':'哈哈'} client.test.test.update({'haha': 'heihei'}, {'$set':data}, upsert=True)
1
2
data = {'msg':'這是一條完整的數據2','name':'哈哈'} # 該完整數據是先查詢后獲取的 client.test.test.update({}, {'$set':data}, multi=True, upsert=True)
1
2
data = {'msg':'指定只更新msg___1'} client.test.test.update({}, {'$set':data}, upsert=True)
1
2
data = {'msg':'指定只更新msg___2'} client.test.test.update({}, {'$set':data}, multi=True, upsert=True)
1
2
collection.delete_one({"name":"test10010"})
1
collection.delete_many({"name":"test10010"})
1
3. pymongo模塊其他api
查看pymongo官方文檔或源代碼 http://api.mongodb.com/python/current/
小結
掌握pymongo的增刪改查的使用
掌握權限認證的方式使用pymongo模塊
MongoDB Python 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。