最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Python操作MongoDB數(shù)據(jù)庫(kù)的詳細(xì)指南

 更新時(shí)間:2023年02月08日 14:26:21   作者:練習(xí)時(shí)長(zhǎng)六年半的Programmer  
MongoDB是由C++語(yǔ)言編寫(xiě)的非關(guān)系型數(shù)據(jù)庫(kù),是一個(gè)基于分布式文件存儲(chǔ)的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng),其內(nèi)容存儲(chǔ)形式類(lèi)似JSON對(duì)象,下面這篇文章主要給大家介紹了關(guān)于利用Python操作MongoDB數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下

數(shù)據(jù)庫(kù)的分類(lèi)

數(shù)據(jù)庫(kù)可以簡(jiǎn)單的分為 MySQLNOSQL 兩類(lèi)。這里的 NOSQL 不是 NO SQL 的意思,他的意思是 Not Only MySQL

MySQL與NoSQL之間的區(qū)別:

1、MySQL是一個(gè)基于表格設(shè)計(jì)的關(guān)系數(shù)據(jù)庫(kù),而NoSQL本質(zhì)上是非關(guān)系型的基于文檔的設(shè)計(jì)。

2、MySQL數(shù)據(jù)庫(kù),覆蓋了巨大的IT市場(chǎng);具有固定市場(chǎng)的MySQL數(shù)據(jù)庫(kù)包含一個(gè)龐大的社區(qū)。而NoSQL數(shù)據(jù)庫(kù)是最新的到來(lái),與MySQL相比,社區(qū)正在慢慢發(fā)展。

3、MySQL的嚴(yán)格模式限制并不容易擴(kuò)展,而NoSQL可以通過(guò)動(dòng)態(tài)模式特性輕松擴(kuò)展。

4、MySQL中創(chuàng)建數(shù)據(jù)庫(kù)之前需要詳細(xì)的數(shù)據(jù)庫(kù)模型,而在NoSQL數(shù)據(jù)庫(kù)類(lèi)型的情況下不需要詳細(xì)的建模。

5、MySQL提供了大量的報(bào)告工具,可以幫助應(yīng)用程序有效,而NoSQL數(shù)據(jù)庫(kù)缺少用于分析和性能測(cè)試的報(bào)告工具。

6、MySQL是一個(gè)關(guān)系數(shù)據(jù)庫(kù),其設(shè)計(jì)約束靈活性較低;而NoSQL本質(zhì)上是非關(guān)系型的,與MySQL相比,它提供了更靈活的設(shè)計(jì)。

7、MySQL中使用的標(biāo)準(zhǔn)語(yǔ)言是SQL;而NoSQL中缺乏標(biāo)準(zhǔn)的查詢(xún)語(yǔ)言。

mongodb是什么

mongodb是一種數(shù)據(jù)庫(kù),它可以?xún)?chǔ)存鍵值對(duì)類(lèi)型的數(shù)據(jù)(json,字典)。目前流行的數(shù)據(jù)庫(kù)是 MySQL ,但它并不利于初學(xué)者入門(mén)。我之前發(fā)過(guò) Tinydb,Sqlite3 等數(shù)據(jù)庫(kù)的講解,都比較簡(jiǎn)單,那我這次來(lái)發(fā)一下mongodb數(shù)據(jù)庫(kù)。

mongodb 的數(shù)據(jù)庫(kù)、集合

一個(gè)數(shù)據(jù)庫(kù)下可以有多個(gè)集合,集合里存儲(chǔ)數(shù)據(jù)。集合可以理解為 SQL 數(shù)據(jù)庫(kù)中的表。

使用Python操作mongodb

安裝 mongodb

終端運(yùn)行

pip install pymongo

連接數(shù)據(jù)庫(kù)

client = pymongo.MongoClient(host, port)

host是地址,port 是端口。

切換數(shù)據(jù)庫(kù) 第一種方法

db_name = client['db_name']

其中 db_name 是你的數(shù)據(jù)庫(kù)名。

第二種方法

db_name = client.get_database('db_name')

其中 db_name 是你的數(shù)據(jù)庫(kù)名。

第三種方法

db_name = client.db_name

切換集合

db_name.test

其中 test 是集合名,沒(méi)有這個(gè)集合會(huì)自動(dòng)創(chuàng)建。

添加數(shù)據(jù)

def add_data(data):
    result = db_name.test.insert_one(data)
    print(result.inserted_id)

其中 test 是集合名。

添加數(shù)據(jù)用 insert_one 方法。

其中,data 是要插入的數(shù)據(jù),它的類(lèi)型是鍵值對(duì),即 Python 中的字典。這是一條合法的 data

{"name":"XiaoMing","password":123456}

特殊的,如果要插入在指定 id ,可以這樣寫(xiě)

result = db_name.test.insert_one({_id:1,"xxx":"xxx",...})

也可以插入多個(gè),只需要把 data 變成

[{"name":"XiaoMing","password":123456},{"name":"XiaoHong","password":123456}]

刪除數(shù)據(jù)

db.test.remove(查詢(xún)表達(dá)式, isJustOne)

查詢(xún)表達(dá)式有這些

語(yǔ)法操作格式
$eq等于{:}
$lt小于{:{$lt:}}
$lte小于或等于{:{$lte:}}
$gt大于{:{$gt:}}
$gte大于或等于{:{$gte:}}
$ne不等于{:{$ne:}}
$or{$or:[{},{}]}
$in在范圍內(nèi){age:{$in:[val1,val2]}}
$nin不在范圍內(nèi){age:{$nin:[val1,val2]}}

例如,刪除 test 集合中 name 是 XiaoMing 的所有數(shù)據(jù)

db.test.remove({<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->name:"XiaoMing"})

修改數(shù)據(jù)

db.collection.update(查詢(xún)表達(dá)式,新值,選項(xiàng)) 選項(xiàng): {upsert : true/false, multi : ture/false}

  • upsert:默認(rèn)為 false , 作用:無(wú)相應(yīng)記錄是否insert,與mysql中的replace同
  • multi:默認(rèn)為 false , 作用:是否作用于多條
#替換文檔,將name為zhangsan的第一個(gè)文檔替換為{"name":"lisi","age":10}
db.stu.update({"name":"zhangsan"},{"name":"lisi","age":10})
$set修改器,指定要更新的key,key不存在則創(chuàng)建,存在則更新。
#將name為zhangsan的所有文檔替換為{"name":"lisi","no":'100'}
db.stu.update({"name":"zhangsan"},{$set:{"name":"lisi","no":'100'}},{multi:true})

查找數(shù)據(jù)

#查找所有數(shù)據(jù)
db.集合名.find()
# 查找到所有匹配數(shù)據(jù)
db.集合名.find({條件文檔})
# 只返回匹配的第一個(gè)數(shù)據(jù)
db.stu.find({age:{$gt:16}}) #查詢(xún)年齡大于16的記錄
db.stu.find({$or:[{age:{$gt:18}},{name:"xiaoming"}]) #查詢(xún)年齡大于18或者名字是xiaoming的記錄
#使用$where后面寫(xiě)一個(gè)函數(shù),返回滿足條件的數(shù)據(jù)
db.stu.find({$where:function(){return this.age>20}})
#用于讀取指定數(shù)量的文檔
db.集合名稱(chēng).find().limit(NUMBER)
#對(duì)查詢(xún)結(jié)果排序(參數(shù)1升序,參數(shù)-1降序)
db.集合名稱(chēng).find().sort({字段:1,...}) 
#統(tǒng)計(jì)結(jié)果中的文檔數(shù)
db.集合名稱(chēng).find({條件}).count()

到此這篇關(guān)于利用Python操作MongoDB數(shù)據(jù)庫(kù)的詳細(xì)指南的文章就介紹到這了,更多相關(guān)Python操作mongodb數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • opencv+python實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊圖像,輸出該點(diǎn)的RGB和HSV值

    opencv+python實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊圖像,輸出該點(diǎn)的RGB和HSV值

    這篇文章主要介紹了opencv+python實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊圖像,輸出該點(diǎn)的RGB和HSV值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python中使用input()函數(shù)獲取用戶輸入值方式

    python中使用input()函數(shù)獲取用戶輸入值方式

    這篇文章主要介紹了python中使用input()函數(shù)獲取用戶輸入值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • python刪除csv文件的行列

    python刪除csv文件的行列

    這篇文章主要介紹了python刪除csv文件中的某幾列或行,主要介紹了python對(duì)csv刪除的方法,感興趣的同學(xué)可以參考學(xué)習(xí)
    2021-04-04
  • 詳解django中url路由配置及渲染方式

    詳解django中url路由配置及渲染方式

    這篇文章主要介紹了詳解django中url路由配置及渲染方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Python實(shí)現(xiàn)xml格式轉(zhuǎn)txt格式的示例代碼

    Python實(shí)現(xiàn)xml格式轉(zhuǎn)txt格式的示例代碼

    VOC 的標(biāo)注是xml格式的,而YOLO是.txt格式,所以要實(shí)現(xiàn)VOC數(shù)據(jù)集轉(zhuǎn)YOLO數(shù)據(jù)集,只能利用代碼實(shí)現(xiàn)。所以本文為大家介紹了Python中xml轉(zhuǎn)txt的示例代碼,需要的可以參考一下
    2022-03-03
  • Python 打印自己設(shè)計(jì)的字體的實(shí)例講解

    Python 打印自己設(shè)計(jì)的字體的實(shí)例講解

    在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于Python 打印自己設(shè)計(jì)的字體的實(shí)例講解內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2021-01-01
  • 基于hashlib模塊--加密(詳解)

    基于hashlib模塊--加密(詳解)

    下面小編就為大家?guī)?lái)一篇基于hashlib模塊--加密(詳解)。小編覺(jué)得挺不錯(cuò)的?,F(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 基于Matplotlib?調(diào)用?pyplot?模塊中?figure()?函數(shù)處理?figure圖形對(duì)象

    基于Matplotlib?調(diào)用?pyplot?模塊中?figure()?函數(shù)處理?figure圖形對(duì)象

    這篇文章主要介紹了基于Matplotlib?調(diào)用?pyplot?模塊中?figure()?函數(shù)處理?figure圖形對(duì)象,matplotlib.pyplot模塊能夠快速地生成圖像,但如果使用面向?qū)ο蟮木幊趟枷?,我們就可以更好地控制和自定義圖像,下面就來(lái)詳細(xì)介紹其內(nèi)容,需要的朋友可以參考下
    2022-02-02
  • Win10下python 2.7與python 3.7雙環(huán)境安裝教程圖解

    Win10下python 2.7與python 3.7雙環(huán)境安裝教程圖解

    這篇文章主要介紹了Win10下python 2.7與python 3.7雙環(huán)境安裝教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 一勞永逸徹底解決pip install慢的辦法

    一勞永逸徹底解決pip install慢的辦法

    經(jīng)常在使用Python的時(shí)候需要安裝各種模塊,而pip是很強(qiáng)大的模塊安裝工具,這篇文章主要給大家介紹了一個(gè)可以一勞永逸徹底解決pip install慢的辦法,需要的朋友可以參考下
    2021-05-05

最新評(píng)論

白城市| 榆中县| 合作市| 如东县| 黄龙县| 铜鼓县| 西充县| 双鸭山市| 江门市| 定陶县| 保康县| 阿拉善左旗| 高阳县| 微博| 商城县| 温州市| 延吉市| 得荣县| 哈密市| 彭山县| 宁德市| 出国| 博白县| 临桂县| 云安县| 呼和浩特市| 巴中市| 景东| 鹿泉市| 拉萨市| 济南市| 通辽市| 萝北县| 京山县| 海林市| 三门县| 天门市| 高清| 清涧县| 吴川市| 静宁县|