Mongodb分布式文件存儲數據庫

文章目錄

    • 一、MongoDB 簡介
      • 基本信息
      • 特點
      • 內部組件
    • 二、MongoDB 部署
      • 1. 安裝依賴
      • 2. 解壓部署并配置環境變量
      • 3. 修改配置文件以及啟動服務
      • 4.數據庫權限管理
    • 三、MongoDB 管理
      • 1. 角色權限
      • 2. 操作命令
        • 用戶管理命令
        • 常用命令(Mongo4.2.8)
          • 數據庫相關
          • 用戶相關
          • 集合 Collection 相關

在這里插入圖片描述

一、MongoDB 簡介

基本信息

MongoDB 是由 C++ 語言編寫的,基于分布式文件存儲的開源數據庫系統。在高負載情況下,可通過添加更多節點保證服務器性能。它旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。MongoDB 將數據存儲為文檔,數據結構由鍵值(key=>value)對組成,其文檔類似于 JSON 對象,字段值可以包含其他文檔、數組及文檔數組。

  • 官方文檔:https://docs.mongodb.com/manual/?_ga=2.57024426.1834178963.1557492386 - 816165234.155749238
  • 官方下載地址:https://www.mongodb.com/download-center/community

特點

  1. 高性能:提供高性能的數據持久性,支持嵌入式數據模型,減少數據庫系統上的 I/O 操作;索引支持快速查詢,可包含嵌入式文檔和數組中的鍵。
  2. 豐富的語言查詢:支持豐富的查詢語言,用于讀寫操作(CRUD)、數據匯總、文本搜索和地理空間索引。
  3. 高可用性:復制工具(副本集)提供自動故障轉移和數據冗余。
  4. 水平可擴展性:分片功能可將數據分布在一組計算機上,提供可擴展性。
  5. 支持多種存儲引擎:如 WiredTiger 存儲引擎、MMAPv1 存儲引擎和 InMemory 存儲引擎。

內部組件

  1. MongoDB Drivers:官方 MongoDB 客戶端庫,提供 C、C++、C#、Java、Node.JS、Perl、PHP、Python、Ruby 和 Scala 驅動程序的參考指南。
  2. MongoDB Stitch:為開發人員提供訪問 MongoDB 和其他后端服務的 API,保持 MongoDB 功能和靈活性,支持細粒度的數據訪問控制配置。
  3. MongoDB Atlas:MongoDB 在云中部署、操作和擴展的最佳方式,適用于 AWS、Azure 和 Google Cloud Platform,可輕松遷移數據,零停機。
  4. MongoDB Cloud Manager:用于管理 MongoDB 部署的軟件包,提供監控和備份功能,幫助用戶優化群集并降低操作風險。
  5. MongoDB Charts:可快速簡單地創建 MongoDB 可視化圖表。
  6. MongoDB Connector for BI:允許用戶使用 SQL 創建查詢,并使用現有的關系商業智能工具(如 Tableau、MicroStrategy 和 Qlik)對 MongoDB Enterprise 數據進行可視化、圖形化和報告。
  7. MongoDB Compass:通過隨機抽樣文檔子集,為用戶提供 MongoDB 模式的圖形視圖,降低對數據庫的影響并快速產生結果。
  8. MongoDB Spark Connector:可訪問所有使用 MongoDB 數據集的 Spark 庫,支持 SQL 分析、流式傳輸、機器學習和圖形 API,也可與 Spark Shell 配合使用。

二、MongoDB 部署

1. 安裝依賴

yum install libcurl openssl -y

2. 解壓部署并配置環境變量

tar xvf mongodb-linux-x86_64-rhel70-4.4.6.tgz
mv mongodb-linux-x86_64-rhel70-4.4.6 /usr/local/mongodb
mkdir /usr/local/mongodb/{conf,data,logs}vi /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin

3. 修改配置文件以及啟動服務

cd /usr/local/mongodb/
vi conf/mongodb.conf
port=39096
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/logs/mongodb.log
bind_ip=0.0.0.0
#auth=true   ### 開啟登錄認證,配置完用戶名密碼在進行開啟# 啟動服務
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongodb.conf --logappend# 連接 mongodb
mongo --port 39096 -uaexcom --authenticationDatabase trade -p

4.數據庫權限管理

// 創建并切換數據庫
use trade
// 創建用戶并授權數據庫
db.createUser({user:"aexcom",pwd:"xxx=",roles:[{role:"readWrite",db:"trade"}]})// 驗證是否登錄成功
use trade
db.auth("aexcom","xxx=")

三、MongoDB 管理

1. 角色權限

  • Read:允許用戶讀取指定數據庫。
  • readWrite:允許用戶讀寫指定數據庫。
  • dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問 system.profile。
  • userAdmin:允許用戶向 system.users 集合寫入,可在指定數據庫里創建、刪除和管理用戶。
  • clusterAdmin:只在 admin 數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限。
  • readAnyDatabase:只在 admin 數據庫中可用,賦予用戶所有數據庫的讀權限。
  • readWriteAnyDatabase:只在 admin 數據庫中可用,賦予用戶所有數據庫的讀寫權限。
  • userAdminAnyDatabase:只在 admin 數據庫中可用,賦予用戶所有數據庫的 userAdmin 權限。
  • dbAdminAnyDatabase:只在 admin 數據庫中可用,賦予用戶所有數據庫的 dbAdmin 權限。
  • root:只在 admin 數據庫中可用,超級賬號,擁有超級權限。

2. 操作命令

用戶管理命令
db.auth() // 將用戶驗證到數據庫。
db.changeUserPassword() // 更改現有用戶的密碼。
db.createUser() // 創建一個新用戶。
db.dropUser() // 刪除單個用戶。
db.dropAllUsers() // 刪除與數據庫關聯的所有用戶。
db.getUser() // 返回有關指定用戶的信息。
db.getUsers() // 返回有關與數據庫關聯的所有用戶的信息。
db.grantRolesToUser() // 授予用戶角色及其特權。
db.removeUser() // 已過時,從數據庫中刪除用戶。
db.revokeRolesFromUser() // 從用戶中刪除角色。
db.updateUser() // 更新用戶數據。
常用命令(Mongo4.2.8)
數據庫相關
// 切換/創建數據庫
use "dbname";
// 查詢所有數據庫
show dbs;
// 查看當前使用的數據庫
db.getName();
// 查看數據庫版本
db.version();
// 查看當前 db 的鏈接地址
db.getMongo();
用戶相關
// 創建普通用戶(創建用戶 cg,對 mytest 數據庫讀寫權限)
db.createUser({user:"cg",pwd:"lianshi",roles:[{role:"readWrite",db:"mytest"}]})
// 刪除用戶
db.dropUser("yonghu")
// 修改用戶密碼
db.updateUser("cg",{pwd:"123456"})
// 進入數據 mytest,用戶名密碼認證
db.auth("cg","lianshi");
集合 Collection 相關
// 獲得數據聚合(表)
db.getCollectionNames();
// 集合(表)插入數據
db.student.insert({"id":"2","name":"yxy"})
// 查詢數據
db.student.find();
// 查詢唯一字段值
db.student.distinct("name");
// 查詢 name = yxy 的記錄
db.student.find({"name":"yxy"});
// 插入 int32 字段類型的數據
db.student.insert({"id":NumberInt(1234567),"name":"hu"});
// 插入 int64 字段類型數據
db.student.insert({"age":NumberLong(22),"name":"hu"});
// 插入 Decimal 字段類型數據
db.student.insert({"va":NumberDecimal("22.3"),"name":"hu"});
// 查詢語句
db.student.find({}).projection({}).sort({_id:-1}).limit(100)
// 刪除(集合)表
db.student.drop();

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77917.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77917.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77917.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

麒麟V10安裝MySQL8.4

1、下載安裝包 wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.5-1.el7.x86_64.rpm-bundle.tar2、解壓 mkdir -p /opt/mysql tar -xvf mysql-8.4.5-1.el7.x86_64.rpm-bundle.tar -C /opt/mysql3、安裝MySQL 3.1、卸載mariadb rpm -qa | grep mariadb rpm -e m…

Unreal如何使用后處理材質實現一個黑屏漸變效果

文章目錄 前言相機后期處理材質創建材質相機設置動態修改FadeAlpha參數使用示例最后前言 UE5 開發VR ,如何通過PostProcess輕松實現黑屏漸變效果 最簡單的辦法,其實是使用一個半球形模型,遮擋住相機,然后控制這個半球形遮罩的顏色透明度,至少Unity中默認的Tunneling是這么…

其它生成式(對比列表生成式)

一、字典生成式: # keys[name, age, gender] # dic{key:None for key in keys} # print(dic) items[(name, Tom), (age, 18), (gender, male)] res{k:v for k,v in items if k ! gender} print(res) 二、集合生成式: keys[name, age, gender] set1{ke…

健身房管理系統(springboot+ssm+vue+mysql)含運行文檔

健身房管理系統(springbootssmvuemysql)含運行文檔 健身房管理系統是一個全面的解決方案,旨在幫助健身房高效管理其運營。系統提供多種功能模塊,包括會員管理、員工管理、會員卡管理、教練信息管理、解聘管理、健身項目管理、指導項目管理、健身器材管理…

LeetCode 第 262 題全解析:從 SQL 到 Swift 的數據分析實戰

文章目錄 摘要描述題解答案(SQL)Swift 題解代碼分析代碼示例(可運行 Demo)示例測試及結果時間復雜度分析空間復雜度分析總結未來展望 摘要 在實際業務中,打車平臺要監控行程的取消率,及時識別服務質量的問…

三生原理與現有密碼學的核心區別?

AI輔助創作: 三生原理與現有密碼學的核心區別 一、?哲學基礎與設計邏輯? ?動態生成 vs 靜態分析? 三生原理以“陰陽動態平衡”為核心,通過參數化生成(如素數構造中的陰陽元聯動公式)模擬系統演化過程,而現有密碼…

4.19-4.20學習總結 網絡編程+反射+動態代理

網絡編程: IPv6有2的128次方個ip。 端口號: 協議: UDP發送和接收消息: UDP的三種通信方式: 單播:一對一,一個發送端對應一個接收端 創建DatagramSocket對象 組播:一個發送端對應一…

Swiper、樣式結構重用、GridGridItem

今日核心: 容器組件:Swiper、Grid\GridItem樣式&結構重用:Builder、Extend、Styles 相關資源: 圖片素材:📎day01.zip 1. Swiper 1.1. 適用場景 首先來看看 Swiper 在什么情況下會用到 鏈接 Swiper組件提供滑…

前沿分享|技術雷達202504月刊精華

本期雷達 ###技術部分 7. GraphRAG 試驗 在上次關于 檢索增強生成(RAG)的更新中,我們已經介紹了GraphRAG。它最初在微軟的文章中被描述為一個兩步的流程: (1)對文檔進行分塊,并使用基于大語言…

數據結構與算法-順序表應用

一.通訊錄的創建 首先我們要理解的是通訊錄本身就是以順序表為底層的 只不過順序表中的數組,這里我們是用結構體來替代,用來存儲用戶的信息 由于是通訊錄的本質就是順序表,所以順序表的任何方法它都能套用 Contact.h: #pragma once #def…

【C++】新手入門指南(下)

文章目錄 前言 一、引用 1.引用的概念和定義 2.引用的特性 3.引用的使用 4.const引用 5.指針和引用的關系 二、內聯函數 三、nullptr 總結 前言 這篇續上篇的內容新手入門指南(上),繼續帶大家學習新知識。如果你感興趣歡迎訂購本專欄。 一、…

uniapp-商城-33-shop 布局搜索頁面以及u-search

shop頁面上有一個搜索&#xff0c;可以進行商品搜索&#xff0c;這里我們先做一個頁面布局&#xff0c;后面再來進行數據i聯動。 1、shop頁面的搜索 2、搜索的頁面代碼 <navigator class"searchView" url"/pagesub/pageshop/search/search"> …

SAP 采購訂單如何防止開票數量 大于 收貨數量呢

配置點如下&#xff1a; 事務碼&#xff1a;OMRM&#xff0c;配置如下 當過賬開票的數量 大于收貨數量的時候會提示如下&#xff1a;

Kotlin 的 suspend 關鍵字

更多相關知識 Kotlin 的 suspend 關鍵字是 Kotlin 協程的核心組成部分&#xff0c;它用于標記一個函數可以被掛起&#xff08;暫停執行&#xff09;并在稍后恢復執行&#xff0c;而不會阻塞線程。 理解 suspend 的作用需要從以下幾個方面入手&#xff1a; 1. 允許非阻塞的異步…

UDS診斷協議iso-14229 15765

Diagnostic request 形式多種: 1.SID+DID 2.SID+Sub-Func+DID 3.SID+Sub-Func SID占1個Byte,Sub-func占一個Byte,DID通常兩個Byte eg.10 01 (SID+Sub-Func) 10 03 05 02 (SID+Sub-Func+DID) 22 02 00 (SID+DID) 肯定響應抑制位 抑制正響應信息除非是收到NRC 0x78的情況下 不…

記錄一次使用面向對象的C語言封裝步進電機驅動

簡介 (2025/4/21) 本庫對目前僅針對TB6600驅動下的42步進電機的基礎功能進行了一定的封裝, 也是我初次嘗試以面向對象的思想去編寫嵌入式代碼, 和直流電機的驅動步驟相似在調用stepmotor_attach()函數和stepmotor_init()函數之后僅通過結構體數組stepm然后指定枚舉變量中的id即…

[創業之路-376]:企業法務 - 創業,不同的企業形態,個人承擔的風險、收益、稅費、成本不同

在企業法務領域&#xff0c;創業時選擇不同的企業形態&#xff0c;個人在風險承擔、收益分配、稅費負擔及運營成本方面存在顯著差異。以下從個人獨資企業、合伙企業、有限責任公司、股份有限公司四種常見形態展開分析&#xff1a; 一、個人承擔的風險 個人獨資企業 風險類型&…

GNOME桌面隱藏回收站和分區

dconf-editor 搜索 trash&#xff0c;關閉 show-trash 搜索 volumes&#xff0c;關閉 show-volumns

準確--Tomcat更換證書

具體意思是&#xff1a; Starting Coyote HTTP/1.1 on http-8080: HTTP 連接器&#xff08;端口 8080&#xff09;啟動成功了。嚴重: Failed to load keystore type PKCS12 with path conf/jlksearch.fzsmk.cn.pfx due to failed to decrypt safe contents entry: javax.crypt…

禁止ubuntu自動更新

由于ubuntu server和desktop版本都默認 啟動了&#xff0c;自動更新內核的操作。這對于生 產環境來說是不友好的。容易導致億賽通 無法啟動 默認開啟了內核自動更新所以我們關閉自 動內核更新。 1.禁止更新執行 sudo apt-mark hold linux-image-generic linux-headers-generic…