日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MongoDB(芒果数据库)学习(一)———增删改查

發布時間:2023/12/10 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB(芒果数据库)学习(一)———增删改查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MongoDB數據庫CRUD(增刪改查)的操作

(1)NoSQL 簡介

NoSQL有時也稱作Not Only SQL的縮寫,意即"不僅僅是SQL"。
現代的計算網絡,每天上都會產生大量數據。
這些數據大部分都是由關系性數據庫系統(RDBMS)來管理的。
NoSQL用于超大規模數據的存儲。
現在針對大數據處理以及高并發、高讀寫推薦使用,NoSQL被廣泛應用。(例如國外的谷歌、Facebook。國內阿里、騰訊每天為用戶收集萬億比特的數據)等,創業型公司很多使用。NoSQL無需多余操作就可以橫向擴展。

(2)MongoDB三個概念

MongoDB的數據模型是面向文檔的,簡單理解 這個數據庫中存的是各種各樣的 JSON。(BSON)。
MongoDB屬于NOSQL,了解mongodb需要先知道這三個名詞代表含義。

  • 數據庫(database)
    數據庫是一個倉庫,在倉庫中可以存放集合。
  • 集合(collection)
    集合類似于數組,在集合中可以存放文檔。
    (類似于SQL中的表空間)
  • 文檔(document)
    文檔數據庫中的最小單位,我們存儲和操作的 內容都是文檔。
    (類似于SQL中的表)
  • 以上為了方便理解與傳統SQL進對比,但之后不要SQL思想去學習。

    二、MongoDB操作

    (1)MongoDB基本指令

    在mongodb中,數據庫和集(collection)都不需要手動創建,當我們創建的文檔時,如果文檔所在的集合或數據庫都沒有,mongodb會自動創建集合與數據庫。
    基本指令:
    1、Show dbs/Show databases
    顯示當前的所有數據庫

    2、Use test_table
    進入document文件(或者表中)

    3、db
    表示當前所處數據庫

    4、show collections
    顯示所有集合

    (2)數據庫CRUD的操作

    操作工具使用的是studio3T。
    因為使用語法,還是想講的細一點兒。會附截圖。

    1、Insert(向集合中插入文檔)

    單個:db.collection.insert()或者 db.collection.insertOne()
    db.emp.insert({name:“索隆”,postion:“左副”,gender:“男”});

    多個:db.collection.insertMany()
    這里需要注意下寫法,"[ ]" ,如果寫成了

    db.emp.insert({name:"山治",postion:"右副",gender:"男"},{name:"喬巴",postion:"船醫生",gender:"中性"},{name:"娜美",postion:"領航員",gender:"男"},{name:"索隆",postion:"左副",gender:"男"} );

    會只有一條記錄,之后也會有"[ ]" 這種問題,但只是寫法問題就不去提了。

    所以寫成:

    db.emp.insert([{name:"山治",postion:"右副",gender:"男"},{name:"喬巴",postion:"船醫生",gender:"中性"},{name:"娜美",postion:"領航員",gender:"男"},{name:"烏索普",postion:"逆風大神",gender:"男"},{name:"索隆",postion:"左副",gender:"男"} ]);


    或者寫成官方文檔格式:

    db.emp.insertMany([{name:"山治",postion:"右副",gender:"男"},{name:"喬巴",postion:"船醫生",gender:"中性"},{name:"娜美",postion:"領航員",gender:"男"},{name:"烏索普",postion:"逆風大神",gender:"男"},{name:"索隆",postion:"左副",gender:"男"} ]);

    都是可以的。
    以上是Insert()、insertOne()、insertmany()、區別不大。
    但One會明確插入一個,Many會插入多個,在官方文檔也是說明在3.2版本后追加的新功能,肯定還是有一定作用。
    之后的改刪會有區別。有詳講。

    2、Find(查詢所有符合條件的文檔)

    多個:db.collection.find()
    因為沒有檢索條件,就全部顯示出

    在混合寫法中,默認為且條件

    db.emp.find({name:"索隆",postion:"左副"});

    db.emp.find({name:"索隆",postion:"船醫"});

    沒有符合條件的數據就顯示為零條。

    單個:db.collection.findOne()或者db.collection.find(條件)
    圖示12行代碼為檢索符合條件,顯示第一條數據。
    圖示13行代碼為檢索符合條件,顯示第2條( [序數])數據。

    值得注意的是find(返回的是數組),find返回的是對象,可通過打點調用的方式,返回數組大小或者對象屬性。

    3、Update(修改符合條件的文檔)

    修改字段值:db.collection.update() //db.collection.updateMany()

    我們想把這個“娜美”的性別變換為女性。
    按照官方文檔我們成功的將性別進行了更改。

    db.emp.update({name:"娜美"},{$set:{gender:"女"}} );


    如果我們沒有寫$set會發生以下情況。

    db.emp.update({name:"娜美"},{gender:"女"});


    看日志是成功了!

    但實際人給弄丟了。

    增加字段值:db.collection.update()
    針對沒有的字段,不用像Oracle新建,直接就可自動創建。
    除了在update中增加字段,在insert時mongodb都會根據需要自動創建。因此擴展性強。

    db.emp.update({name:"索隆"},{$set:{dream:"第一大劍豪"} } );


    但值得注意的是,數據中有兩個“索隆”,update與updateOne 都只是默認改第一個,不過可以使用。db.collection.updateMany()去修改多個,所有匹配的,都會更改,在此不再截圖證明了。
    但update實際是updateOne()與updateMany()的綜合體
    在官方文檔中,update有很多屬性,當使用update將multi設置為true時即可更改多條符合條件數據。

    當我們執行以下指令:

    db.emp.update({gender:"男"},{$set:{describe:"可愛的憨憨"} },{multi:true} );

    會發現符合條件的數據都發生了變化!

    4、Delete(修改符合條件的文檔)

    刪除數據:
    db.collection.deleteOne()
    db.collection.deleteMany()
    db.collection.remove()
    在這里,deleteMany與remove的處理結果都是相同的都是符合條件所有數據

    db.emp.deleteMany({name:"索隆"})


    但是在remove屬性,增加true條件會只刪除一個,deleteone效果相同,官方文檔有說明:

    db.emp.remove({name:"索隆"}true )

    但常同刪除數據的方法,是將其中一個字段設置為isDel為1,當顯示數據時顯示isDel為0的數據,即可達成刪除數據的目的。好處是任何刪除的數據,都可還原,提高數據安全性。

    刪除集合
    db.collection.remove()
    db.collection.drop()
    當使用:
    db.emp.remove({});
    db.emp.drop();
    會將collection也刪除掉


    如果remove方法傳入空對象,也會將集合刪除
    但處理過程為一條條刪除,效率會很低,當真的需要刪除時,可直接使用db.collection.drop()。

    當然還有db.dropdatabase().刪除數據庫,除非你已經做好了刪庫跑路的準備。還有2020年2月24號的新聞,惡意刪庫犯罪人被判刑了兩年,因此你們懂得!

    三、結語:

    感謝閱讀文章,您的贊是對我的激勵。如有錯誤請示作者改正,萬分感謝。

    認真做好每一件事,只為做個細心的人。

    長大后發現時間流逝的真的很快。

    有這樣一個小故事: 曾國藩小時晚上背書,墻外有個小偷,就等呀等呀!等了很多個時辰,發現還沒背完。最后小偷生氣的一腳踹開門,當著曾國藩的面將他背誦的內容背誦了出來。
    并羞辱的說道:你這么笨還浪費什么燈油。
    但十年后,小偷仍舊是小偷,而曾國藩已經成了舉世聞名的大人物!

    時間不是用來流逝的,而是用來積累的。

    加油!

    總結

    以上是生活随笔為你收集整理的MongoDB(芒果数据库)学习(一)———增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。