Docker 安裝 MongoDB


1、查看可用的 MongoDB 版本

訪問 MongoDB 鏡像庫地址: https://hub.docker.com/_/mongo?tab=tags&page=1

2、取最新版的 MongoDB 鏡像

這里我們拉取官方的最新版本的鏡像:

$ docker pull mongo:latest

3、查看本地鏡像

使用以下命令來查看是否已安裝了 mongo:

$ docker images

 

 

4、運行容器

安裝完成后,我們可以使用以下命令來運行 mongo 容器:

$ docker run -itd --name mongo -p 27017:27017 mongo --auth

參數說明:

  • -p 27017:27017 :映射容器服務的 27017 端口到宿主機的 27017 端口。外部可以直接通過 宿主機 ip:27017 訪問到 mongo 的服務。
  • --auth:需要密碼才能訪問容器服務。

 

 

 

5、安裝成功

最后我們可以通過 docker ps 命令查看容器的運行信息:

 

 

接着使用以下命令添加用戶和設置密碼,並且嘗試連接。
$ docker exec -it mongo mongo admin
# 創建一個名為 admin,密碼為 123456 的用戶。
>  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 嘗試使用上面創建的用戶信息進行連接。
> db.auth('admin', '123456')

 

6、MongoDB數據庫基本用法

 用戶相關

1、添加一個用戶

use admin
db.createUser(
{
user: "admin",
pwd: "admin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
} )

2、數據庫認證、安全模式

 db.auth("userName", "123123");

3、顯示當前所有用戶

 show users;

4、刪除用戶

 db.removeUser("userName");

show dbs:顯示數據庫列表 
show collections:顯示當前數據庫中的集合(類似關系數據庫中的表) 
show users:顯示用戶
use <db name>:切換當前數據庫,這和MS-SQL里面的意思一樣 
db.help():顯示數據庫操作命令,里面有很多的命令 
db.foo.help():顯示集合操作命令,同樣有很多的命令,foo指的是當前數據庫下,一個叫foo的集合,並非真正意義上的命令 
db.foo.find():對於當前數據庫中的foo集合進行數據查找(由於沒有條件,會列出所有數據) 
db.foo.find( { a : 1 } ):對於當前數據庫中的foo集合進行查找,條件是數據中有一個屬性叫a,且a的值為1
MongoDB沒有創建數據庫的命令,但有類似的命令。
如:如果你想創建一個“myTest”的數據庫,先運行use myTest命令,之后就做一些操作(如:db.createCollection('user')),這樣就可以創建一個名叫“myTest”的數據庫。
數據庫常用命令

1、Help查看命令提示
 db.help();

2、切換/創建數據庫
 use yourDB; 當創建一個集合(table)的時候會自動創建當前數據庫
3、查詢所有數據庫
 show dbs;
4、刪除當前使用數據庫
 db.dropDatabase();
5、從指定主機上克隆數據庫
 db.copyDatabase(“127.0.0.1”); 將指定機器上的數據庫的數據復制到當前數據庫
6、從指定的機器上復制指定數據庫數據到某個數據庫
 db.copyDatabase("product_test_db", "test_db", "172.20.65.151");將遠程172.20.65.151服務器中product_test_db數據庫的數據復制到本機test_db數據庫中
7、修復當前數據庫
 db.repairDatabase();
8、查看當前使用的數據庫
 db.getName();
 db; db和getName方法是一樣的效果,都可以查詢當前使用的數據庫
9、顯示當前db狀態
 db.stats();
10、當前db版本
 db.version();
11、查看當前db的鏈接機器地址
 db.getMongo();

collection集合

1、創建一個聚集集合(table)

 db.createCollection(“collName”);

2、得到指定名稱的聚集集合(table)

 db.getCollection("account");

3、得到當前db的所有聚集集合

 db.getCollectionNames();

show collections;

4、顯示當前db所有聚集索引的狀態

 db.printCollectionStats();

查看集合基本信息

1、查看幫助  db.yourColl.help();

2、查詢當前集合的數據條數  db.yourColl.count();

3、查看數據空間大小 db.userInfo.dataSize();

4、得到當前聚集集合所在的db db.userInfo.getDB();

5、得到當前聚集的狀態 db.userInfo.stats();

6、得到聚集集合總大小 db.userInfo.totalSize();

7、聚集集合儲存空間大小 db.userInfo.storageSize();

8、Shard版本信息  db.userInfo.getShardVersion()

9、聚集集合重命名 db.userInfo.renameCollection("users"); 將userInfo重命名為users

10、刪除當前聚集集合 db.userInfo.drop();

 

update詳解:

db.collection.update( criteria, objNew, upsert, multi )

criteria : update的查詢條件,類似sql update查詢內where后面的
objNew   : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set后面的
upsert   : 這個參數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,默認是false,不插入。
multi    : mongodb默認是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。

例:
db.test0.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); 只更新了第一條記錄
db.test0.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true ); 全更新了
db.test0.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 只加進去了第一條
db.test0.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true ); 全加進去了
db.test0.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );全更新了
db.test0.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );只更新了第一條


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM