青銅黃金,對著mysql學,一文搞定mongoDB【綻放吧!數據庫】

      網友投稿 944 2025-04-03

      Mongodb基礎入門教程


      項目中使用的技術五花八門,接觸了很多新技術,之前也沒用過mongo,今天惡補一下基礎的知識,開始吧。

      1、mongo 和 mysql 概念 對比

      一個剛畢業的學生都知道mysql ,所以說關系型數據庫就像我們的母語一樣,在學習新的數據庫的時候進行知識遷移,先來類比一下mysql 的概念。

      2、插入文檔

      MongoDB 使用 insert() 或 save() 方法向集合中插入文檔

      例子

      db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一個 Nosql 數據庫', by: '菜鳥教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })

      以上實例中 col 是我們的集合名,如果該集合不在該數據庫中, MongoDB 會自動創建該集合并插入文檔。

      3、更新文檔

      update() 方法用于更新已存在的文檔

      save() 方法通過傳入的文檔來替換已有文檔,_id 主鍵存在就更新,不存在就插入

      語法:

      db.getCollection('test_data_1').updateMany( // 下面是查詢條件 {"字段名1":"查找條件1","字段名2":"查找條件2"}, // 進行修改 {"$set":{"字段名":"新的數據","字段名":"新的數據"} })

      updateOne:只更新第一條符合條件的數據

      updateMany:更新所有符合條件的數據

      4、刪除文檔

      例子:

      db.getCollection('test_data_1').deleteMany( // 刪除的條件 {"字段名1":"值","字段名2":"值2"} )

      deleteOne和deleteMany。和修改數據的情況差不多,一個是刪除第一條滿足條件的,一個是刪除所有滿足條件的。

      5、查詢

      MongoDB 查詢數據的語法格式如下:

      db.collection.find(query, projection)

      query :可選,使用查詢操作符指定查詢條件

      projection :可選,使用投影操作符指定返回的鍵。查詢時返回文檔中所有鍵值, 只需省略該參數即可(默認省略)。

      MongoDB 的 find() 方法可以傳入多個鍵(key),每個鍵(key)以逗號隔開,即常規 SQL 的 AND 條件

      db.col.find({"by":"香菜聊游戲", "title":"MongoDB 教程"})

      等價于:WHERE by='香菜聊游戲' AND title='MongoDB 教程'

      MongoDB OR 條件語句使用了關鍵字 $or

      db.col.find({$or:[{"by":"香菜聊游戲"},{"title": "MongoDB 教程"}]})

      等價于:WHERE by='香菜聊游戲' or title='MongoDB 教程'

      6、查詢排序

      從青銅到黃金,對著mysql學,一文搞定mongoDB【綻放吧!數據庫】

      在 MongoDB 中使用 sort() 方法對數據進行排序,sort() 方法可以通過參數指定排序的字段,并使用 1 和 -1 來指定排序的方式,其中 1 為升序排列,而 -1 是用于降序排列。

      例子 :

      db.col.find({},{"title":1,_id:0}).sort({"likes":-1})

      得到數據的條數

      db.getCollection('test_data_1').find({}).count()

      7、索引:

      單個索引

      db.col.createIndex({"title":1})

      Key 值為你要創建的索引字段,1 為指定按升序創建索引,如果你想按降序來創建索引指定為 -1

      復合索引:

      db.col.createIndex({"title":1,"description":-1})

      8、限制數量

      db.col.find({},{"title":1,_id:0}).limit(2)

      除了可以使用limit()方法來讀取指定數量的數據外,還可以使用skip()方法來跳過指定數量的數據,skip方法同樣接受一個數字參數作為跳過的記錄條數。

      db.col.find({},{"title":1,_id:0}).limit(1).skip(1)

      9、去重

      在mongodb中進行數據去重是一個很簡單的操作。使用distinct即可。它可以接收兩個參數,第一個參數為需要被去重的字段名,第二個參數是進行去重的條件(去重條件也就是進行查詢操作的第一個參數,可以省略)。

      db.getCollection('test_data_1').distinct(去重的字段名,去重的條件)

      db.getCollection('test_data_1').distinct("name",{"age":{"$ne":10}})

      最佳實踐

      集合名全部小寫

      禁止使用數字打頭的庫名

      文檔中的 key 禁止使用任何 " _ "(下劃線)以外的特殊字符

      盡量存放統一了大小寫后的數據

      在創建集合時,規劃好索引,在集合為空的時候創建索引

      索引的數量越少越好,

      mongo不支持表連接

      設定合適的MongoDB連接池大小,Java驅動的默認連接池大小是100

      不要實例化多個MongoClient。MongoClient是個線程安全的類,自帶線程池。通常在一個JVM內不要實例化多個MongoClient實例,避免連接數過多和資源的不必要浪費

      【綻放吧!數據庫】有獎征文火熱進行中:https://bbs.huaweicloud.com/blogs/285617

      MongoDB MySQL 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Office 2015測試版下載(暫未上線)及安裝方法(office怎么免費永久激活)
      下一篇:wps文字排序與手動調行距的介紹
      相關文章
      亚洲一区二区三区在线观看精品中文 | 久久精品国产亚洲av四虎| 亚洲A∨午夜成人片精品网站| 亚洲AV无码无限在线观看不卡| 亚洲国产精品久久网午夜| 亚洲精品不卡视频| 亚洲综合色丁香麻豆| 亚洲视频在线视频| 亚洲一区二区电影| 亚洲福利电影一区二区?| 亚洲精品中文字幕麻豆| 亚洲福利电影一区二区?| 亚洲喷奶水中文字幕电影| 亚洲一区二区久久| 亚洲三级在线观看| 亚洲色大成网站www尤物| 亚洲男同gay片| 国产精品亚洲五月天高清| 亚洲成av人片天堂网老年人| 亚洲精品国产自在久久 | 亚洲国产综合在线| 亚洲人成人网毛片在线播放| 亚洲一久久久久久久久| 亚洲丰满熟女一区二区哦| MM1313亚洲国产精品| 亚洲国产精品一区二区九九| 中文字幕亚洲专区| 亚洲伊人久久大香线蕉综合图片 | 国产亚洲精品影视在线| 亚洲av乱码一区二区三区按摩| 国产精品亚洲专区无码牛牛| 亚洲精品无码你懂的网站| 中文字幕不卡亚洲| 亚洲成AV人在线观看天堂无码| 久久久久亚洲精品无码蜜桃| 亚洲一区在线观看视频| 综合一区自拍亚洲综合图区| 永久亚洲成a人片777777| 久久久久久a亚洲欧洲AV| 亚洲人成在线播放| 亚洲av成人中文无码专区|