Centos 7 安裝 MongoDB
先創(chuàng)建 mongobg 源文件
sudo vi /etc/yum.repos.d/mongodb-org.repo
按 i 輸入內容
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
編輯完按 esc,然后按 :wq 保存退出,接著執(zhí)行
yum repolist
會看到

image.png
然后執(zhí)行
sudo yum install mongodb-org
安裝完成后,啟動 mongodb
sudo systemctl start mongod
開啟外網訪問
vi /etc/mongod.conf
修改 bindIp 為 0.0.0.0
mongodb 基本操作
在mongodb中是通過數據庫、集合、文檔的方式來管理數據,下邊是mongodb與關系數據庫的一些概念對比:

image.png
連接數據庫
命令格式
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?
options]]
- mongodb:// 固定前綴
- username:賬號,可不填 password:密碼,可不填 host:主機名或ip地址,只有host主機名為必填項。
- port:端口,可不填,默認27017 /database:連接某一個數據庫
- ?options:連接參數,key/value對
mongodb://localhost //連接本地數據庫27017端口
mongodb://root:123456@localhost //使用用戶名root密碼為123456連接本地數據庫27017端口
mongodb://localhost,localhost:27018,localhost:27019,//連接三臺主從服務器,端口為27017、27018、27019
查詢數據庫
查詢全部數據庫
show dbs
顯示當前數據庫
db
創(chuàng)建數據庫
該數據庫若存在,則使用這個數據庫,沒有就創(chuàng)建,新創(chuàng)建的數據庫,如果沒有一個集合,那么在 show dbs 的時候不會顯示,但這個數據庫是存在的。
use DATABASE_NAME
刪除數據庫
刪除當前使用的數據庫
db.dropDatabase()
創(chuàng)建集合
db.createCollection(name, options)
// name: 新創(chuàng)建的集合名稱
// options: 創(chuàng)建參數
刪除集合
db.集合名.drop()
插入文檔
mongodb 中文檔的格式是 json 格式
db.集合名.insert(document)
例如
db.ohome.insert({"name":"dane","age":18})
查詢文檔
db.集合名.find(query,projection)
//query:查詢條件,可不填
//projection:投影查詢key,可不填,就是顯示哪些字段
例如
db.ohome.find({"age":18})
得到,_id 是自動生成的
{ "_id" : ObjectId("5deb9f34a61cc86a0ef69de8"), "name" : "dane", "age" : 18 }
不想顯示 _id,可以這樣,1 代表顯示,0 不顯示
db.ohome.find({"age":18},{name:1,age:1,_id:0})
得到
{ "name" : "dane", "age" : 18 }
更新文檔
db.集合名.update(
<query>,
<update>,
<options> )
//query:查詢條件,相當于sql語句的where
//update:更新文檔內容
//options:選項
例如
db.ohome.update({"name":"dane"},{"name":"dane","age":20})
刪除文檔
db.student.remove(<query>)
//query:刪除條件,相當于sql語句中的where
創(chuàng)建用戶
db.createUser(
{ user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
... ]}
)
例如
db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})
內置角色如下:
1. 數據庫用戶角色:read、readWrite;
2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級用戶角色:root
查詢用戶
show users
刪除用戶
db.dropUser("用戶名")
修改密碼
db.changeUserPassword("用戶名","newPasswd")
修改用戶
db.updateUser(
"<username>",
{
customData : { <any information> },
roles : [
{ role: "<role>", db: "<database>" } | "<role>",
... ],
pwd: "<cleartext password>"
},
writeConcern: { <write concern> })
例子:
db.updateUser("root",{roles:[{role:"readWriteAnyDatabase",db:"admin"}]})