python入門python的基本語法
784
2025-04-01
一.MongoDB 簡介
二.MongoDB 歷史
三.MongoDB 支持語言
四.MongoDB 與關系型數據庫術語對比
五.MongoDB 下載與安裝
1.下載
2.安裝
3.創建數據/日志目錄
4.啟動MongoDB
(1)前臺啟動
(2)后臺啟動
(3)配置文件
(4)啟動
5.客戶端訪問
6.關閉MongoDB
(1)前臺啟動關閉
(2)后臺啟動關閉
(3)kill命令關閉
(4)MongoDB 函數關閉
六.環境變量
一.MongoDB 簡介
Mongo 并非芒果(Mango)的意思,而是源于 Humongous(巨大的;龐大的)一詞。
MongoDB 是一個基于分布式文件存儲的 NoSQL 數據庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。關于什么是 NoSQL 可閱讀《學了那么多 NoSQL 數據庫 NoSQL 究竟是啥》
MongoDB 是一個介于關系型數據庫和非關系型數據庫之間的產品,是非關系型數據庫當中功能最豐富,最像關系數據庫的。
MongoDB 使用 BSON(Binary JSON)對象來存儲,與 JSON 格式的鍵值對(key/value)類似,字段值可以包含其他文檔,數組及文檔數組。支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系型數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
二.MongoDB 歷史
2007 年,Dwight Merriman,Eliot Horowitz 和 Kevin Ryan 成立 10gen 軟件公司,在成立之初,這家的公司目標是進軍云計算行業,為企業提供云計算服務。在開發云計算產品時,他們準備開發一個類似于數據庫的組件,為云計算產品提供存儲服務。當時是關系型數據庫一統天下的時間,他們覺得傳統的關系型數據庫無法滿足他們的要求,他們想要一款程序員不懂SQL語言也可以使用的數據存儲產品。
在網絡上找了一圈,不管是開源的還是閉源的產品,都沒找到讓他們滿意的東西,既然找不到,那就自己開發吧,反正他們也有那個技術實力,10gen 的創始人都來自谷歌,他們創建的網絡廣告公司 DoubleClick 被谷歌收購了,這是他們的第二次創業。
10gen 公司不使用關系型數據庫是有一定原因的,當時他們還在 DoubleClick 公司的時候,就吃過關系型數據庫的苦頭。DoubleClick 是一家網絡廣告公司,服務美國眾多的知名公司,該公司每秒提供 40 萬個廣告,但在可伸縮性和敏捷性方面經常遇到困難,因此他們不得不經常自己開發和使用許多自定義數據存儲來解決現有關系型數據庫的不足,這讓他們很是苦惱。
因此他們決定開發一款數據庫產品解決他們在 DoubleClick 時遇到的問題,并為自己的云計算產品提供存儲服務。
MongoDB 最初于 2007 年開發,由位于紐約的一個名為 10gen 的組織開發,現在被稱為 MongoDB Inc.
2009 年,經過將近 2 年的開發,10gen 開發出了 MongoDB 的雛形并將它開源以及正式命名為 MongoDB,同時成立開源社區,通過社區運營 MongoDB。
2009 年 02 月 MongoDB 1.0 發布,提供了大部分基本的查詢功能。
2009 年 12 月 MongoDB 1.2 發布,引入了 map-reduce,支持大規模數據處理。
MongoDB 的第一個真正產品是從 2010 年 03 月發布的 MongoDB 1.4 版本開始的。
2010 年 8 月 MongoDB 1.6 發布,引入了一些主要特性,比如用于水平伸縮的分片、具備自動故障轉移能力的副本集以及對 IPv6 的支持。
2012 年 05 月 23 日,MongoDB 2.1 發布。該版本采用全新架構,包含諸多增強。
2012 年 06 月 06 日,MongoDB 2.0.6 發布,分布式文檔數據庫。
2012 年 8 月 MongoDB 2.2 發布,引入了聚合管道,可以將多個數據處理步驟組合成一個操作鏈。
2013 年 MongoDB 推出第一款商業版本 MongoDB Enterprise Advanced。
2013 年 04 月 23 日,MongoDB 2.4.3 發布,此版本包括了一些性能優化,功能增強以及 bug 修復。
2013 年 08 月 20 日,MongoDB 2.4.6 發布,仍然是以性能優化,功能增強和 bug 修復為主。
2015 年 03 月 MongoDB 3.0 發布,包含了新的 WiredTiger 存儲引擎、可插拔存儲引擎 API、增加了 50 個副本集限制和安全改進。同年晚些時候又發布了 3.2 版本,支持文檔驗證、部分索引和一些主要的聚合增強。
2016 年 MongoDB 推出了 Atlas 服務,MongoDB Atlas,與公有云服務廠商(谷歌、微軟Azure)合作。這一年,MongoDB 爆出了非常嚴重的安全門事件,黑客通過 MongoDB 的默認監聽地址 0.0.0.0 刪除數據,并且通過此漏洞進行勒索,支付 0.2 到 0.5 的比特幣就可以恢復數據。
2017 年 10 月 MongoDB 公司成立 10 周年之際,順利通過 IPO 在紐交所上市。開盤 24 美元,公司估值達到 16 億美元,并獲得 1.92 美元的籌資。
2017 年 11 月 MongoDB 3.6 發布,為多集合連接查詢、變更流和使用 JSON 模式進行文檔驗證提供了更好的支持。
2018 年 06 月 MongoDB 4.0 發布,這一版本的發布獲得了廣泛的關注,提供了跨文檔事務處理能力。這是一個重要的里程碑,MongoDB 已經為高數據完整性需求做好了準備。
2019 年 03 月 18 日,Forrester 授予 MongoDB NoSQL 領導者稱號。
2019 年 10 月 MongoDB 4.2 發布,開始支持分布式事務。
截至 2020 年 10 月,MongoDB 的社區版版本是 4.4.1,擴展性和性能增強,降低復制延遲,可用性和容錯性增強,查詢能力和易用性增強,MongoDB 云平臺的功能更新。MongoDB 逐漸的從一個專注于數據庫服務的廠商,轉變為提供數據平臺服務的廠商。
截至 2020 年,MongoDB 的全球下載量達到了 1.1 億次。MongoDB 公司目前有 2000 多名員工,有超過 18000 名付費客戶,其中有很多客戶同時使用 MongoDB Atlas 和 MongoDB 企業版。大多數大公司在內部的一些場景中仍然使用的是社區版。MongoDB 社區版仍然是開源的,除了一些關鍵特性外,它與 MongoDB 企業版差不多。
三.MongoDB 支持語言
四.MongoDB 與關系型數據庫術語對比
五.MongoDB 下載與安裝
下載
在頁面中選擇 MongoDB Community Server 社區版,根據自己的系統選擇對應的版本,我自己使用的是 CentOS 版本。而 MongoDB 只有 RedHat 版本,下載使用即可。
CentOS 是 Community ENTerprise Operating System 的簡稱,也可以叫它社區企業操作系統,是 Linux 操作系統中的一個發行版本。 CentOS 并不是全新的 Linux 發行版,它是 Red Hat 家族發行的企業版的產品 Red Hat Enterprise Linux(以下稱之為 RHEL)的克隆版本。RHEL 是很多企業采用的 Linux 發行版本,需要向 Red Hat 付費才可以使用,并能得到付費對應的服務,技術支持和版本升級。CentOS 可以像 RHEL 一樣的構筑 Linux 系統環境,但不需要向 Red Hat 支付任何的產品和服務費用,同時也得不到任何有償技術支持和升級服務。
確認該版本軟件是否支持你的操作系統
安裝
將資源上傳至服務器 /usr/local/src,解壓至 /usr/local 并重命名為 mongodb。
# 創建 mongodb 目錄 mkdir -p /usr/local/mongodb # 解壓 mongodb 至指定目錄 tar -zxvf /usr/local/src/mongodb-linux-x86_64-rhel70-4.4.1.tgz -C /usr/local/ # 重命名解壓目錄為 mongodb mv /usr/local/mongodb-linux-x86_64-rhel70-4.4.1/ /usr/local/mongodb
創建數據/日志目錄
創建用于存放數據和日志的文件夾,并修改其權限增加讀寫權限。
# 創建存放數據的目錄 mkdir -p /usr/local/mongodb/data/db # 創建存放日志的目錄 mkdir -p /usr/local/mongodb/logs # 創建日志記錄文件 touch /usr/local/mongodb/logs/mongodb.log
啟動 MongoDB
前臺啟動
MongoDB 的默認啟動方式為前臺啟動。所謂的前臺啟動就是 MongoDB 啟動進程后會占用當前的終端窗口。
# 切換至指定目錄 cd /usr/local/mongodb/ # 前臺啟動 bin/mongod --dbpath /usr/local/mongodb/data/db/ --logpath /usr/local/mongodb/logs/mongodb.log --logappend --port 27017 --bind_ip 0.0.0.0
--dbpath:指定數據文件存放目錄
--logpath:指定日志文件,注意是指定文件不是目錄
--logappend:使用追加的方式記錄日志
--port:指定端口,默認為 27017
--bind_ip:綁定服務 IP,若綁定 127.0.0.1,則只能本機訪問,默認為本機地址
后臺啟動
所謂的后臺啟動就是以守護進程的方式啟動 MongoDB。命令中添加 --fork 即可。
# 后臺啟動 bin/mongod --dbpath /usr/local/mongodb/data/db/ --logpath /usr/local/mongodb/logs/mongodb.log --logappend --port 27017 --bind_ip 0.0.0.0 --fork
通過命令啟動的方式并不適合管理,畢竟每次輸入命令都需要考慮各參數的配置。我們可以通過配置文件來配置啟動參數,然后通過指定配置文件的方式啟動服務,這樣在管理 MongoDB 上就比較方便了。
配置文件
在 bin 目錄下增加一個 mongodb.conf 配置文件。
# 數據文件存放目錄 dbpath = /usr/local/mongodb/data/db # 日志文件存放目錄 logpath = /usr/local/mongodb/logs/mongodb.log # 以追加的方式記錄日志 logappend = true # 端口默認為 27017 port = 27017 # 對訪問 IP 地址不做限制,默認為本機地址 bind_ip = 0.0.0.0 # 以守護進程的方式啟用,即在后臺運行 fork = true
啟動
# 切換至指定目錄 cd /usr/local/mongodb/ # 指定配置文件的方式啟動服務 bin/mongod -f bin/mongodb.conf
客戶端訪問
可以通過 bin 目錄中的 mongo 來訪問 MongoDB 服務器。
命令為:bin/mongo --host 連接的主機地址(默認127.0.0.1) --port 端口(默認27017) [root@localhost mongodb]# bin/mongo MongoDB shell version v4.4.1 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("2bf54fad-83bc-444c-8bee-166a224445b8") } MongoDB server version: 4.4.1 --- The server generated these startup warnings when booting: 2020-10-21T10:47:44.855+08:00: ***** SERVER RESTARTED ***** 2020-10-21T10:47:47.024+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted 2020-10-21T10:47:47.024+08:00: You are running this process as the root user, which is not recommended 2020-10-21T10:47:47.024+08:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never' 2020-10-21T10:47:47.024+08:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never' 2020-10-21T10:47:47.024+08:00: Soft rlimits too low 2020-10-21T10:47:47.024+08:00: currentValue: 1024 2020-10-21T10:47:47.024+08:00: recommendedMinimum: 64000 --- --- Enable MongoDB's free cloud-based monitoring service, which will then receive and display metrics about your deployment (disk utilization, CPU, operation statistics, etc). The monitoring data will be available on a MongoDB website with a unique URL accessible to you and anyone you share the URL with. MongoDB may use this information to make product improvements and to suggest MongoDB products and deployment options to you. To enable free monitoring, run the following command: db.enableFreeMonitoring() To permanently disable this reminder, run the following command: db.disableFreeMonitoring() --- > help 幫助命令。 > help db.help() help on db methods db.mycoll.help() help on collection methods sh.help() sharding helpers rs.help() replica set helpers help admin administrative help help connect connecting to a db help help keys key shortcuts help misc misc things to know help mr mapreduce show dbs show database names show collections show collections in current database show users show users in current database show profile show most recent system.profile entries with time >= 1ms show logs show the accessible logger names show log [name] prints out the last segment of log in memory, 'global' is default use
這里先簡單通過客戶端進行訪問測試,后面會詳細羅列客戶端操作 MongoDB 數據庫、集合、文檔、索引、內置函數等相關的操作。
關閉 MongoDB
前臺啟動關閉
使用 Ctrl + c 即可關閉。
后臺啟動關閉
使用 --shutdown 參數即可關閉。
# 命令啟動方式的關閉 bin/mongod --dbpath /usr/local/mongodb/data/db/ --logpath /usr/local/mongodb/logs/mongodb.log --logappend --port 27017 --bind_ip 0.0.0.0 --fork --shutdown # 配置文件啟動方式的關閉 bin/mongod -f bin/mongodb.conf --shutdown
kill 命令關閉
通過 kill -9 的方式強制關閉進程,一般這種方式都不怎么推薦使用。
# 查看 mongodb 運行的進程信息 ps -ef | grep mongodb # kill -9 強制關閉 kill -9 pid
MongoDB 函數關閉
連接到 MongoDB 服務后,切換到 admin 數據庫,并使用相關函數關閉服務。
# 連接 mongodb bin/mongo # 切換 admin 數據庫 use admin # 執行以下函數(2選1)即可關閉服務 db.shutdownServer() db.runCommand(“shutdown”)
環境變量
每次操作 MongoDB 都需要進入具體的目錄才行,比如啟動服務,客戶端進行連接等,可不可以在任意目錄都能進行操作。答案當然是可以的,只需要將 MongoDB 相關目錄添加至系統環境變量即可。
先通過 vim /etc/profile 編輯系統環境變量文件,添加以下內容。
# 添加環境變量 export MONGODB_HOME=/usr/local/mongodb export PATH=$PATH:$MONGODB_HOME/bin
然后通過 source /etc/profile 重新加載系統環境變量。這樣在系統任意目錄下都可以直接操作 MongoDB 了。
本文講解了 MongoDB 的一些入門級內容,教會了大家如何基于 Linux 環境下載與安裝 MongoDB 。
覺得不錯的朋友可以進行分享,有錯誤請指出來。
【綻放吧!數據庫】有獎征文火熱進行中:https://bbs.huaweicloud.com/blogs/285617
MongoDB 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。