import pymongo
client= pymongo.mongoclient(host='localhost',port=27017)
# client=mongoclient('mongodb://localhost:27017/')
#指定資料庫
db=client.test
#db=client['test']
##指定集合(collection)
collection =db.students # collection=db['students']
student =
result = collection.insert(student)
print(result)
'''在mongodb中,每條資料其實都有乙個_id屬性來唯一標識。如果沒有顯式指明該屬性,
mongodb會自動產生乙個objectid型別的_id屬性。insert()方法會在執行後返回_id值。
也可以同時插入多條資料,只需要以列表形式傳遞即可
result = collection.insert([student1, student2])
print(result)
返回結果是對應的_id的集合:
[objectid('5932a80115c2606a59e8a048'), objectid('5932a80115c2606a59e8a049')]
pymongo 3.x版本中,官方已經不推薦使用insert()方法了。當然,繼續使用也沒有什麼問題。
官方推薦使用insert_one()和insert_many()方法來分別插入單條記錄和多條記錄,
result = collection.insert_one(student)
print(result) //print(result.inserted_id) //5932ab0f15c2606f0c1cf6c5
result = collection.insert_many([student1, student2])
print(result) //print(result.inserted_ids)// [objectid('5932abf415c2607083d3b2ac'), objectid('5932abf415c2607083d3b2ad')]
'''##查詢
'''利用find_one()或find()方法進行查詢,其中find_one()查詢得到的是單個結果,find()則返回乙個生成器物件。、
當然,如果查詢結果不存在,則會返回none。
name為mike的資料,它的返回結果是字典型別,
result = collection.find_one()
print(type(result))
print(result)
////
根據objectid來查詢,此時需要使用bson庫裡面的objectid
from bson.objectid import objectid
result = collection.find_one()
如果要查詢年齡大於20的資料,results = collection.find(})
$lt 小於}
$gt大於}
$lte小於等於}
$gte大於等於}
$ne不等於}
$in在範圍內}
$nin不在範圍內}
$regex匹配正規表示式}name以m開頭
$exists屬性是否存在}name屬性存在
$type型別判斷}age的型別為int
$mod數字模操作年齡模5餘0
$text文字查詢}text型別的屬性中包含mike字串
$where高階條件查詢自身粉絲數等於關注數
##計數
count = collection.find().count()
count = collection.find().count()
'''##排序
results = collection.find().sort('name', pymongo.ascending) # pymongo.descending降序 pymongo.ascending公升序
print([result['name'] for result in results])
# ['harden', 'jordan', 'kevin', 'mark', 'mike']
##偏移
results = collection.find().sort('name', pymongo.ascending).skip(2)
print([result['name'] for result in results])
#['kevin', 'mark', 'mike']
##限制
results = collection.find().sort('name', pymongo.ascending).skip(2).limit(2)
print([result['name'] for result in results])
#['kevin', 'mark']
##更新
condition =
student=collection.find_one(condition)
student['age']=25
result=collection.update(condition,student)
print(result) #
#alse
result = collection.update(condition, )
# 只更新student字典內存在的字段。如果原先還有其他字段,則不會更新,也不會刪除。
# 而如果不用$set的話,則會把之前的資料全部用student字典替換;如果原本存在其他字段,則會被刪除。
'''condition = }
result = collection.update_one(condition, })
print(result)
print(result.matched_count, result.modified_count)
這裡指定查詢條件為年齡大於20,然後更新條件為},也就是年齡加1,執行之後會將第一條符合條件的資料年齡加1
1 1 #匹配條數為1條,影響條數也為1條
'''##刪除
result = collection.remove()
print(result)#
result = collection.delete_one()
print(result)
print(result.deleted_count)
result = collection.delete_many(})
print(result.deleted_count)
'''其他操作
另外,pymongo還提供了一些組合方法,如find_one_and_delete()、find_one_and_replace()和find_one_and_update(),
它們是查詢後刪除、替換和更新操作,其用法與上述方法基本一致。
另外,還可以對索引進行操作,相關方法有create_index()、create_indexes()和drop_index()等。
'''
Python Mongodb資料儲存
導言 一直在用mysql,聽說mongodb非常不錯,一直在工作中沒用到,這個週末來玩玩 mongodb安裝mongodb 管理工具 rockmongo python mongodb操作 coding utf 8 import pymongo client pymongo.mongoclient l...
Python MongoDB常用操作
mongodb 是乙個基於分布式檔案儲存的資料庫。由c 語言編寫。旨在為web應用提供可擴充套件的高效能資料儲存解決方案。mongodb 是乙個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。他支援的資料結構非常鬆散,是類似json的bson格式,因此...
Python MongoDB 筆記 增刪改查
client mongoclient mongodb localhost 27017 db client.testcollection db.studentsstudent1 student2 單條 result collection.insert one studentl print result...