pymongo的使用

經過上一篇博客的閱讀學習,咱們對於MongoDB的原生數據庫操做語句已經用了大致上的掌握,那麼在咱們的程序中用什麼來幫助咱們對數據庫進行操做呢?python

沒錯!就是咱們的pymongo模塊了數據庫

pip3 install pymongo安裝json

python -m pip install pymongo 上面執行報錯的能夠試試這一條命令(前提環境變量配置對應了)學習

連接MongoDB

import pymongo

mongo_conn=pymongo.MongoClient(host="127.0.0.1",port=27017)
mongo_db = mongo_conn['demo']

res=mongo_db.student.insert_one({"name":"瞎子","age":20})
print(res)
#<pymongo.results.InsertOneResult object at 0x000000A76F12FF08>
print(res.inserted_id)
#5b7e3132ec882c1c285372cd


res=mongo_db.student.insert_many([{"name":"亞索"},{"name":"石頭人"}])
print(res)
#<pymongo.results.InsertManyResult object at 0x000000B934E4FEC8>
print(res.inserted_ids)
#[ObjectId('5b7e31c3ec882c2194a18512'), ObjectId('5b7e31c3ec882c2194a18513')]

注意插入一條數據和多條數據執行結果返回值的區別inserted_id,inserted_idsui

res=mongo_db.student.find({"name":"小強"})
for i in res:
    print(i)
'''
{'_id': ObjectId('5b7e15decc299a1858801264'), 'name': '小強',  'gender': '', 'age': 18.0}

'''
res=mongo_db.student.find_one()
print(res)
'''
{'_id': ObjectId('5b7e15b3cc299a1858801263'), 'name': '元少',  'gender': '', 'age': 18.0}

'''

res=mongo_db.student.update_one({"name":"亞索"},{"$set":{"age":888}})
print(res.raw_result)
#{'n': 1, 'nModified': 0, 'ok': 1.0, 'updatedExisting': True}

看到這裏,是否是感受跟原生的操做語句大差不差的呢?沒錯!能夠說是徹底同樣的。因此直接看我上一篇博客,帶你快速入門MondoDB操做哦~~~spa

res=mongo_db.student.delete_one({"name":"石頭人"})
print(res.deleted_count)#獲取刪除的條數
print(res.acknowledged)#True 這個參數能夠用來判斷執行是否成功,返回結果是True或者False

乾貨

細心的小夥伴應該對MongoDB中自動生成的_id感到一絲疑惑吧,而且你想經過_id來查詢數據的時候,會發現根本查不到,怎麼試都不行,明明字符串寫的如出一轍。code

緣由就在於數據的_id對應的是ObjectId類型,咱們單純用字符串想去匹配它是不行的blog

這個時候就須要藉助一個json的二哥bson模塊了~~~ip

import pymongo

mongo_conn=pymongo.MongoClient(host="127.0.0.1",port=27017)
mongo_db = mongo_conn['demo']

from bson import ObjectId
res=mongo_db.school.find_one({"_id":ObjectId("23rwahd83ruieajf93rea")})

這樣就能夠暢通無阻的查詢了,想怎麼查就怎麼查。字符串

這是在存數據時須要注意的,在取數據進行應用的時候也須要注意這個坑,一般是對取出的數據立馬對_id進行str()轉一下,或者直接不要_id項

res=mongo_db.student.find_one({"name":"小強"},{"_id":0})

查詢數據時,對於你不想獲取和展現的數據,能夠在查詢條件後指定忽略的字段狀態表示爲0,這樣查詢出來的結果就會自動幫你去掉你不想要的數據對,逗號隔開的各個條件之間是與的關係

相關文章
相關標籤/搜索