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

MongoDB對Document(文檔)的插入、刪除及更新

 更新時間:2022年07月08日 15:09:04   作者:奮斗的大橙子  
這篇文章介紹了MongoDB對Document(文檔)的插入、刪除及更新,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一.Document數(shù)據(jù)插入

1.插入文檔

db.[文檔名].insert({BSON數(shù)據(jù)})

2.批量插入文檔

shell當中不支持批量插入,想完成批量插入操作,可以使用shell的for循環(huán),或者其他高級語言當中的批量操作方法

例:使用for循環(huán)插入10個學生,在學生集合當中

我使用的是2.6的版本,發(fā)現(xiàn)已經(jīng)支持了批量插入操作。

3.Save操作

save操作和insert操作的區(qū)別在于,save在遇到_id相同的插入數(shù)據(jù)時候,會覆蓋原來的,而insert會提示錯誤

例子:

用insert的方法去插入一個_id相同的數(shù)據(jù)

二.Document數(shù)據(jù)刪除

1.刪除列表中所有數(shù)據(jù)

db.[文檔名].remove({})

集合的本身和索引不會別刪除

例子:刪除列表中所有數(shù)據(jù)

2.根據(jù)條件刪除

例: 刪除_id為10的那條記錄

三.Document數(shù)據(jù)更新

1.直接覆蓋更新

db.[文檔名].update({查詢器},{修改器})

{查詢器}就相當于是條件

{修改器}就是你要直接覆蓋替換的BSON數(shù)據(jù)

例:更新_id為9,那個學生,把Name變成age

注意:當主鍵沖突的時候會報錯并且停止更新操作

例:我用_id為8的數(shù)據(jù),去替換_id為9的記錄,因為_id為8的數(shù)據(jù)已經(jīng)存在,不允許有兩個主鍵為_id:8

的記錄,所以會報錯。

2.采用insertOrUpdate的做法進行更新

db.[文檔名].update({查詢器},{修改器},true)

后面第三個參數(shù)為true,就代表是當記錄不存在的時候,就插入一條記錄,如果存在就更新

例:更新一個_id為10的數(shù)據(jù),沒有就插入,有就更新

3.批量更新操作

db.[文檔名].update({查詢器},{修改器},false, true)

※默認情況當查詢器查詢出多條數(shù)據(jù)的時候默認就修改第一條數(shù)據(jù)

先修改一下數(shù)據(jù)如下:

讓_id為9和10的數(shù)據(jù),有相同的內(nèi)容

再插入一個_id=11,age=20的數(shù)據(jù)

第四個參數(shù)不寫的情況下去更新:

如下:只能更新第一個age=20的數(shù)據(jù)

第四個參數(shù)添加并且為true的時候,我們預(yù)期是10和11都能被修正

但是當我試圖去更新的時候,報錯了,提示說批量更新只能在有$操作的時候使用

修正插入語句

這里注意$set后面要有":",而且它和它后面的修改器要被{}包起來,因為我第一次使用mongoDB,所以總寫錯。

4.使用修改器來完成局部更新操作

$set它用來指定一個鍵值對,如果存在鍵就進行修改不存在則進行添加

{$set:{field:value}}

_id為10的數(shù)據(jù),沒有Name屬性,進行了添加,有age鍵,就進行了修改

$inc

1.適用于數(shù)字類型

2.能夠?qū)︽I對應(yīng)的數(shù)字類型數(shù)值進行加減操作

{$inc:{field:value}}

給age=30的數(shù)據(jù)增加2歲,由于沒有使用批量更新參數(shù),所以默認修正了第一條

$unset刪除指定的鍵

{$unset:{field:1}}

我在例子里面先是刪除了age=30的數(shù)據(jù)的age屬性,但是有一點不明白,unset后面那個field:1是什么,于是我查了一下,說是后面是什么都無所謂,unset只看鍵不看value,于是又做了第二個例子

$push

1.如果指定的鍵是數(shù)組增追加新的數(shù)值

2.如果指定的鍵不是數(shù)組則中斷當前操作,報錯

3.如果不存在指定的鍵則創(chuàng)建數(shù)組類型的鍵值對

{$push:{field:value}}

$pushAll

用法同上,是批量添加數(shù)組數(shù)據(jù)的操作

{$pushAll:{field:array}}

1.第一個操作沒有用$pushAll,所以把["C#","JAVA"]當成一個數(shù)組項目處理了

2.第二個操作使用了$pushAll,所以當成了兩項來處理的。

$addToSet

往數(shù)組中添加項目,存在就不添加,不存在就添加(push不管存不存在都添加)

{$addToSet:{field:value}}

1.先用push插入,發(fā)現(xiàn)更新完成后有兩個“C#”

2.再用addToSet更新,發(fā)現(xiàn)沒有增加項目

$pop

從指定數(shù)組刪除一個值1刪除最后一個數(shù)值,-1刪除第一個數(shù)值

{$pop:{field:value}}

1.刪除最后一個索引位置的數(shù)據(jù),后面的value用"1"

2.刪除第一位置索引的數(shù)據(jù),value=-1

$pull

push的逆向操作,刪除鍵是數(shù)組的項目中的指定元素

{$pull:{field:value}}

$pullAll

批量刪除數(shù)組中的指定元素

{$pullAll:{field:array}}

$ 數(shù)組定位器,如果數(shù)組有多個數(shù)值我們只想對其中一部分進行操作我們就要用到定位器($)

{$push:{field:value}}

1.實例第一個是在剛剛清空的數(shù)組里面添加了兩個元素

2.我想在{“SubID”:1,"SubName":"MangoDB"}這個對象里面再添加"Teacher":"Lucy"

5.$addToSet與$each結(jié)合完成批量數(shù)組更新

理解:首先從上面的例子中我們知道,addToSet這個修改器,可以判斷是否項目存在,不存在的時候就直接插入。

此時我有一個功能,例如我想往一個存在數(shù)據(jù)的數(shù)組中批量更新數(shù)據(jù),如果存在就不更新。那么只使用addToSet是不能進行批量的,于是就要結(jié)合$each來實現(xiàn)。

例:

1.新創(chuàng)建一個文件,并使用pushAll修改器添加數(shù)據(jù):

2.我想要批量插入"C#","PHP","JavaScript","JAVA",要求不能有重復(fù)的

如果這時候我直接用pushAll來進行更新的話,"C#"和"JAVA"就會有重復(fù)

在shell當中輸入如下命令:

總結(jié):以上就是MongoDB的Document的插入、刪除以及更新的使用。

到此這篇關(guān)于MongoDB操作Document的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • CentOS 7下用yum快速安裝MongoDB的方法教程

    CentOS 7下用yum快速安裝MongoDB的方法教程

    MongoDB 是一個基于分布式文件存儲的數(shù)據(jù)庫。由 C++ 語言編寫。旨在為 WEB 應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。本文介紹了CentOS 7系統(tǒng)下用yum快速安裝MongoDB的方法教程,文中通過一步步的步驟介紹的很詳細,有需要的朋友們可以參考借鑒。
    2016-12-12
  • mongodb實現(xiàn)同庫聯(lián)表查詢方法示例

    mongodb實現(xiàn)同庫聯(lián)表查詢方法示例

    在關(guān)系型數(shù)據(jù)庫中,通過連接運算符可以實現(xiàn)多個表聯(lián)合查詢。而非關(guān)系型數(shù)據(jù)庫的特點是表之間屬于弱關(guān)聯(lián),下面這篇文章主要給大家介紹了關(guān)于mongodb實現(xiàn)同庫聯(lián)表查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • MongoDB搭建高可用集群的完整步驟(3個分片+3個副本)

    MongoDB搭建高可用集群的完整步驟(3個分片+3個副本)

    這篇文章主要給大家介紹了關(guān)于MongoDB搭建高可用集群(3個分片+3個副本)的完整步驟,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MongoDB具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • mongodb使用心得簡單總結(jié)

    mongodb使用心得簡單總結(jié)

    本文整理了一年多以來我常用的MongoDB操作,既有運維層面也有應(yīng)用層面,內(nèi)容有淺有深,這也就是我從零到熟練的歷程。
    2016-01-01
  • mongodb 修改器($inc/$set/$unset/$push/$pop/upsert)

    mongodb 修改器($inc/$set/$unset/$push/$pop/upsert)

    對于文檔的更新除替換外,針對某個或多個文檔只需要部分更新可使用原子的更新修改器,能夠高效的進行文檔更新。更新修改器是中特殊的鍵
    2017-04-04
  • MongoDB為什么比Mysql快原理解析

    MongoDB為什么比Mysql快原理解析

    這篇文章主要為大家介紹了MongoDB為什么比Mysql快原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • MongoDB索引使用詳解

    MongoDB索引使用詳解

    索引,使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。索引是對數(shù)據(jù)庫表中一列或多列的值進行排序的一種結(jié)構(gòu),例如 employee 表的姓名(name)列。如果要按姓查找特定職員,與必須搜索表中的所有行相比,索引會幫助您更快地獲得該信息。
    2016-01-01
  • MongoDB 中聚合統(tǒng)計計算--$SUM表達式

    MongoDB 中聚合統(tǒng)計計算--$SUM表達式

    這篇文章主要介紹了MongoDB 中聚合統(tǒng)計計算--$SUM表達式的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • MongoDB設(shè)計方法以及技巧示例詳解

    MongoDB設(shè)計方法以及技巧示例詳解

    這篇文章主要給大家介紹了關(guān)于MongoDB設(shè)計方法以及技巧的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MongoDB具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-06-06
  • mongodb在建立一個T級別的數(shù)據(jù)庫時,進程掛掉的解決方法

    mongodb在建立一個T級別的數(shù)據(jù)庫時,進程掛掉的解決方法

    這篇文章主要介紹了mongodb在建立一個T級別的數(shù)據(jù)庫時,進程掛掉,需要的朋友可以參考下
    2017-03-03

最新評論

金平| 阳原县| 紫阳县| 明水县| 灵台县| 阿巴嘎旗| 博客| 乐清市| 滁州市| 盘山县| 张北县| 中方县| 遂平县| 英吉沙县| 日喀则市| 普格县| 长春市| 云梦县| 集安市| 昂仁县| 万山特区| 北海市| 商河县| 江永县| 安徽省| 宁安市| 威远县| 淮北市| 乐至县| 集贤县| 东安县| 泌阳县| 防城港市| 山西省| 壤塘县| 儋州市| 师宗县| 桐柏县| 平南县| 南通市| 瑞丽市|