MongoDB資料庫 : 管道,用戶管理,副本集等

来源:https://www.cnblogs.com/cccy0/archive/2018/06/09/9158937.html
-Advertisement-
Play Games

聚合(aggregate): db.集合.aggregate([{管道:{表達式}}]) db.集合.aggregate([ {管道1:{表達式1}}, {管道2:{表達式2}}, ... ...]) 管道1的結果作為管道2的輸入. $group:分組 {$group:{ _id:'$gender' ...


聚合(aggregate): db.集合.aggregate([{管道:{表達式}}])

db.集合.aggregate([
{管道1:{表達式1}},
{管道2:{表達式2}},
... ...
])

管道1的結果作為管道2的輸入.

$group:分組 {$group:{
_id:'$gender',
count:{$sum:1}
}}

$match:過濾(年齡大於19) {$match:{age:{$gt:19}}}

$project:投影(和find第二組參數一樣,1顯示,0不顯示) {$project:{_id:0,counter:1}}

$sort:排序(和sort一樣,1升序,-1降序) {$sort:{_id:-1}}

$skip(跳過多少條文檔,和skip一樣) {$skip:2}

$limit(獲取多少條文檔,和limit一樣) {$limit:2}

$unwind(可以把數組拆分成單條文檔) {$unwind:'$xxx'}

索引(1:升序索引,2:降序索引):db.集合.ensureIndex({屬性1:1,屬性2:1})

查看文檔索引 db.集合.getIndex()

刪除索引 db.集合.dropIndex('索引名稱')

角色: root 只在admin資料庫可用,超級賬號
Read:允許用戶讀取指定資料庫
readWrite:允許用戶讀寫指定資料庫

創建超級管理員:
db.createUser({user:'admin',pwd:'123',roles:[{role:'root',db:'admin'}]})

啟用驗證 修改/etc/mongodb.conf:

security:
authorization: enabled

或者 auth=true

用超級管理員創建普通用戶:
db.createUser({user:'user1',pwd:'123',roles:[{role:'readWrite',db:'students'}]})

登陸: mongo -u user1 -p 123 --authenticationDatabase students

副本集:數據備份等:
mongod --bind_ip x.x.x.x --porx 27018 --dbpath ~/Desktop/t1 --replSet rs0
mongod --bind_ip x.x.x.x --porx 27019 --dbpath ~/Desktop/t2 --replSet rs0

連接 mongo --host x.x.x.x --port 27018

初始化主伺服器: >rs.initiate() 查看狀態 rs.status()

添加副本集: rs.add('x.x.x.x:27019')')
刪除副本集:rs.remove('x.x.x.x:27019')')

在從伺服器中讀取操作需要設置 rs.slaveOk()

自動主從切換:一個伺服器關閉另一個自動切換成主伺服器.

資料庫備份:mongodump -u user1 -p 123 --authenticationDatabase 資料庫名 -d 備份資料庫 -o 存放位置

資料庫恢復: mongorestore -h 伺服器地址 -d 需要恢復的資料庫 --dir 備份資料庫位置


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、準備工作 1、IDE的pom.xml中添加 2、IDE的reources中放入centos中Hbase的三個配置文件 core-site.xmlhbase-site.xmlhdfs-site.xml 註:文件路徑:/soft/hbase/conf/**** 二、Hbase -- API操作 組成 ...
  • 單表查詢 1、查詢所有: select * from 表名; 2、查詢選中欄位數據: select 欄位名 from 表名; 3、查詢指定條件下的數據: select 欄位名 from 表名 where 條件(例id>3); 4、查詢後為欄位取別名 as: select 原名 as 更改名 from ...
  • 背景 由於項目的需要,使用 資料庫,因此在Windows上安裝 資料庫。但是在安裝後,無法訪問本地資料庫,這個時候查看 目錄,沒有任何文件。而且安裝過程中,彈出提示框 Problem running post install step.Installation may not complete co ...
  • 在鎖與事務系列里已經寫完了上篇中篇,這次寫完下篇。這個系列俺自認為是有條不紊的進行,但感覺鎖與事務還是有多很細節沒有講到,溫故而知新可以為師矣,也算是一次自我提高總結吧,也謝謝大伙的支持。在上一篇的末尾寫了事務隔離級別的不同表現,還沒寫完,只寫到了重覆讀的不同隔離表現,這篇繼續寫完序列化,快照的不同 ...
  • 一、表關係 先參照如下表結構創建7張表格,並創建相關約束 年級表: class_grade 1. 班級表class create table class ( cid int primary key auto_increment, caption char(10), grade_id int ); i ...
  • 第一步:使用記事本打開mysql安裝目錄下的"my.ini”文件。 看看default-character-set 是不是 utf8不是的話 改為utf8即可!(以前的版本可能沒有這句話 直接加上就好了!) 第二步:在mysql資料庫cmd中輸入:show variables like'%char% ...
  • zookeeper的安裝分為三種模式:單機模式、集群模式和偽集群模式。 1、單機模式 首先,從Apache官網下載一個Zookeeper穩定版本,本次教程採用的是zookeeper-3.4.9版本。 http://apache.fayea.com/zookeeper/zookeeper-3.4.9/ ...
  • 前言 1.操作系統為Centos7 2.所有操作都是使用root用戶去操作。也可以使用其他用戶,非root的話要註意操作的許可權問題。 3.安裝的Hadoop版本是2.6.5,Spark版本是2.2.0,Scala的版本是2.11.8。 如果安裝的Spark要同Hadoop搭配工作,則需註意他們之間的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...