mongodb 安装包_MongoDB快速入门,掌握这些刚刚好!
生活随笔
收集整理的這篇文章主要介紹了
mongodb 安装包_MongoDB快速入门,掌握这些刚刚好!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
雖說現在關系型數據庫還是主流,但是面對某些需求的時候,需要非關系型數據庫來補充它,學習一個主流的NoSQL數據庫還是很有必要的。MongoDB是一個功能豐富的NoSQL數據庫,本文整理了它最常用的部分形成了這篇入門教程,希望對大家有所幫助。
SpringBoot實戰電商項目mall(40k+star)地址:https://github.com/macrozheng/mall
簡介
MongoDB是一個基于分布式文件存儲的數據庫。由C++語言編寫,旨在為WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB是一個介于關系型數據庫和非關系型數據庫之間的產品,是非關系型數據庫當中功能最豐富,最像關系型數據庫的。
安裝
以前寫的MongoDB安裝教程是基于3.2版本的,發現有的朋友使用新版本安裝有問題,這次我們使用最新版本再來安裝一次,本文所使用的MongoDB版本為4.2.5,總的來說,新版本的安裝更簡單了。Windows下的安裝
- 下載MongoDB安裝包,選擇Windows x64版本安裝,下載地址:https://www.mongodb.com/download-center/community
- 運行MongoDB安裝包并選擇自定義安裝,設置好安裝路徑;
- 配置MongoDB,讓MongoDB作為服務運行,并配置好數據目錄和日志目錄;
- 取消MongoDB Compass的安裝選項(不取消安裝極慢),需要可自行安裝;
- 雙擊mongo.exe可以運行MongoDB自帶客戶端,操作MongoDB;
- 連接成功后會顯示如下信息;
- 如果需要移除MongoDB服務,只需使用管理員權限運行cmd工具,并輸入如下命令。
Linux下的安裝
- 下載MongoDB的Docker鏡像;
- 使用Docker命令啟動MongoDB服務;
- 有時候我們需要為MongoDB設置賬號,可以使用如下命令啟動;
- 然后我們需要進入容器中的MongoDB客戶端;
- 之后在admin集合中創建一個賬號用于連接,這里創建的是基于root角色的超級管理員帳號;
- 創建完成后驗證是否可以登錄;
- 整個賬號創建過程可以參考下圖。
客戶端工具
MongoDB的客戶端工具有很多,上面沒安裝的MongoDB Compass就是其中之一,另外Navicat 15版本也有MongoDB的管理功能。這里我們使用的是一款免費的客戶端工具Robo 3T(以前叫Robomongo)。- 首先下載客戶端工具,下載地址:https://robomongo.org/download
- 下載完成后解壓,雙擊robo3t.exe即可使用;
- 之后創建一個到MongoDB的連接;
- 創建連接成功以后,就可以操作MongoDB了。
相關概念
MongoDB是非關系型數據庫當中最像關系型數據庫的,所以我們通過它與關系型數據庫的對比,來了解下它的概念。數據庫操作
- 創建數據庫,使用use命令去創建數據庫,當插入第一條數據時會創建數據庫,例如創建一個test數據庫;
- 刪除數據庫,使用db對象中的dropDatabase()方法來刪除;
集合操作
- 創建集合,使用db對象中的createCollection()方法來創建集合,例如創建一個article集合;
- 刪除集合,使用collection對象的drop()方法來刪除集合,例如刪除一個article集合;
文檔操作
上面的數據庫和集合操作是在MongoDB的客戶端中進行的,下面的文檔操作都是在Robomongo中進行的。插入文檔
- MongoDB通過collection對象的insert()方法向集合中插入文檔,語法如下;
- 使用collection對象的insert()方法來插入文檔,例如插入一個article文檔;
- 使用collection對象的find()方法可以獲取文檔,例如獲取所有的article文檔;
更新文檔
- MongoDB通過collection對象的update()來更新集合中的文檔,語法如下;
- 將title為MongoDB 教程的所有文檔的title修改為MongoDB;
- 除了update()方法以外,save()方法可以用來替換已有文檔,語法如下;
- 這次我們將ObjectId為5e9943661379a112845e4056的文檔的title改為MongoDB 教程;
刪除文檔
- MongoDB通過collection對象的remove()方法來刪除集合中的文檔,語法如下;
- 刪除title為MongoDB 教程的所有文檔;
查詢文檔
- MongoDB通過collection對象的find()方法來查詢文檔,語法如下;
- 查詢article集合中的所有文檔;
- MongoDB中的條件操作符,通過與SQL語句的對比來了解下;
- 條件查詢,查詢title為MongoDB 教程的所有文檔;
- 條件查詢,查詢likes大于50的所有文檔;
- AND條件可以通過在find()方法傳入多個鍵,以逗號隔開來實現,例如查詢title為MongoDB 教程并且by為Andy的所有文檔;
- OR條件可以通過使用$or操作符實現,例如查詢title為Redis 教程或MongoDB 教程的所有文檔;
- AND 和 OR條件的聯合使用,例如查詢likes大于50,并且title為Redis 教程或者"MongoDB 教程的所有文檔。
其他操作
Limit與Skip操作
- 讀取指定數量的文檔,可以使用limit()方法,語法如下;
- 只查詢article集合中的2條數據;
- 跳過指定數量的文檔來讀取,可以使用skip()方法,語法如下;
- 從第二條開始,查詢article集合中的2條數據;
排序
- 在MongoDB中使用sort()方法對數據進行排序,sort()方法通過參數來指定排序的字段,并使用1和-1來指定排序方式,1為升序,-1為降序;
- 按article集合中文檔的likes字段降序排列;
索引
- 索引通常能夠極大的提高查詢的效率,如果沒有索引,MongoDB在讀取數據時必須掃描集合中的每個文件并選取那些符合查詢條件的記錄。
- MongoDB使用createIndex()方法來創建索引,語法如下;
- 給title和description字段創建索引,1表示升序索引,-1表示降序索引,指定以后臺方式創建;
- 查看article集合中已經創建的索引;
聚合
- MongoDB中的聚合使用aggregate()方法,類似于SQL中的group by語句,語法如下;
- 聚合中常用操作符如下;
- 根據by字段聚合文檔并計算文檔數量,類似與SQL中的count()函數;
- 根據by字段聚合文檔并計算likes字段的平局值,類似與SQL中的avg()語句;
正則表達式
- MongoDB使用$regex操作符來設置匹配字符串的正則表達式,可以用來模糊查詢,類似于SQL中的like操作;
- 例如查詢title中包含教程的文檔;
- 不區分大小寫的模糊查詢,使用$options操作符;
結合SpringBoot使用
具體參考:《mall整合Mongodb實現文檔操作》
本文 GitHub https://github.com/macrozheng/mall-learning已經收錄,歡迎大家Star。總結
以上是生活随笔為你收集整理的mongodb 安装包_MongoDB快速入门,掌握这些刚刚好!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle两列合并成一列_POWER
- 下一篇: mqtt调试助手_物联网入门,如何使用M