MongoDB集合中的文檔管理
上一博客寫(xiě)了集合的管理,集合里面存放的是文檔,因此聰明的你應(yīng)該能想到這篇是學(xué)習(xí)文檔管理。要說(shuō)標(biāo)題應(yīng)該是文檔管理,不過(guò)對(duì)于文檔的管理都是先獲得集合對(duì)象,在集合對(duì)象上調(diào)用方法管理文檔,所以標(biāo)題還是對(duì)集合的管理。
在集合管理中,要管理集合首先要獲得這個(gè)集合,同樣文檔管理也是要先獲得集合對(duì)象,然后通過(guò)集合對(duì)象管理文檔。
一、將文檔添加到集合中
為什么要先說(shuō)添加呢,因?yàn)椴惶砑泳蜎](méi)法說(shuō)下面的查找。將文檔添加到一個(gè)集合中,首先需要得到集合對(duì)象,通過(guò)幾個(gè)對(duì)象調(diào)用insert(document)或save(document)方法。document對(duì)象是被轉(zhuǎn)換成BSON并存儲(chǔ)在集合中的格式正確的JS對(duì)象。下面圖中使用insert、save兩種方式添加文檔。
二、在集合中查找文檔
查找英文單詞有search、find等(學(xué)習(xí)下英語(yǔ),畢竟我差一分沒(méi)過(guò)四級(jí),你可能會(huì)問(wèn)除了這兩個(gè)還有其他的嗎?畢竟用的是等,其實(shí)我想告訴你我的英文詞典中就這兩個(gè),其他的我還真不知道有沒(méi)有)。好,閑篇到此結(jié)束。在集合中查找沒(méi)想到是用find,還沒(méi)超過(guò)我的知識(shí)范圍.下圖中可以看到有使用find([query])方法來(lái)查找文檔。query指定包含字段和值得查詢文檔與集合中的文檔匹配。

三、從集合中刪除文檔
刪除的話是通過(guò)集合對(duì)象調(diào)用remove([query])來(lái)刪除。不過(guò)這里如果不帶query直接使用Remove()來(lái)刪除則會(huì)報(bào)錯(cuò),如下圖,如果真想刪除所有的可以使用remove({})傳一個(gè)空js對(duì)象。
上面在學(xué)習(xí)集合中查找添加文檔時(shí)添加了兩個(gè)文檔。這里又添加了一個(gè)文檔,方便刪除查看效果。

在上面的圖中可以看到,直接使用remove()時(shí)是報(bào)錯(cuò)的。使用remove({})可以刪除全部文檔。
四、更新集合中的文檔
其實(shí)對(duì)于集合的管理在第一篇博客Window環(huán)境下配置Mongodb數(shù)據(jù)庫(kù)中也有簡(jiǎn)單的提到,這次呢還是簡(jiǎn)單的說(shuō)一下,較復(fù)雜的后面會(huì)請(qǐng)聽(tīng)下回分解。
要更新集合中的文檔首先應(yīng)得到該集合。然后使用save(object)方法來(lái)保存對(duì)某一個(gè)對(duì)象的更改。也可以使用update(query,update,options)方法來(lái)查詢集合中的文檔,然后在它們被找到時(shí)更新它們。 query參數(shù)指定了字段和值與集合這的文檔匹配的一個(gè)查詢文檔。update參數(shù)為一個(gè)對(duì)象,它指定在作出更新時(shí)使用的更新運(yùn)算符。如$inc遞增該字段的值。$設(shè)置字段的值,$push將一個(gè)條目推送到數(shù)組等。 option參數(shù)是一個(gè)對(duì)象,有兩個(gè)布爾值屬性,multi和upsert。upsert為true時(shí)若沒(méi)有找到就創(chuàng)建一個(gè)新的文檔。如果multi為true,與匹配的所有文檔都被更新,否則只有第一個(gè)文檔被更新。
下圖中首先創(chuàng)建了3個(gè)文檔,然后更新age=25的,不過(guò)multi=false,所以只更新第一個(gè)文檔,還有一個(gè)age=25的存在。
對(duì)于創(chuàng)建文檔也挺有意思,之前都是一個(gè)一個(gè)的創(chuàng)建,剛才試了下批量創(chuàng)建,下面的圖也看到了要使用數(shù)組的形式添加.


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
MongoDB數(shù)據(jù)庫(kù)簡(jiǎn)介與安裝方法
這篇文章介紹了MongoDB數(shù)據(jù)庫(kù)簡(jiǎn)介與安裝方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
MongoDB中實(shí)現(xiàn)多表聯(lián)查的實(shí)例教程
數(shù)據(jù)庫(kù)應(yīng)用在我們的生活中是很常見(jiàn)的,在編輯一些應(yīng)用以及軟件的時(shí)候都需要用到數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MongoDB中實(shí)現(xiàn)多表聯(lián)查的相關(guān)資料,需要的朋友可以參考下2022-07-07
MongoDB模糊查詢正則regex(類似like?和?not?like)
在類關(guān)系型數(shù)據(jù)庫(kù)中,like和not?like是常用的模糊查詢操作符,它允許我們?cè)谄ヅ渥侄蔚臅r(shí)候使用通配符,在MongoDB中,也有類似的操作符,MongoDB?可以使用?$regex?操作符來(lái)設(shè)置匹配字符串的正則表達(dá)式,MongoDB?使用?PCRE(Perl?兼容的正則表達(dá)式)作為正則表達(dá)式語(yǔ)言2024-02-02
關(guān)于MongoDB謹(jǐn)防索引seek的效率問(wèn)題詳析
這篇文章主要給大家介紹了關(guān)于MongoDB謹(jǐn)防索引seek的效率問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MongoDB具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

