04 MongoDB相關操作
MongoDB相關操作
一、操作資料庫
1.1、查詢資料庫
show dbs //查詢全部資料庫
db //顯示當前資料庫
1.2、建立資料庫
use DATABASE_NAME
例子:
use test02
有test02資料庫則切換到此資料庫,沒有則建立
注意:新建立的資料庫不顯示,需要至少包含一個集合
1.3、刪除資料庫
db.dropDatabase()
例子:刪除test02資料庫
先切換資料庫:use test02
再執行刪除:db.dropDatabase()
二、操作資料
2.1、集合
在MongoDB中沒有表的概念,都是通過操作集合相當關係型資料庫中的表,一個數據庫可以有多個集合,一個集合是將相同型別的文件管理起來
2.1.1、建立集合
db.craeteCollection(name,option)
- name:新建立的集合名稱
- options:建立引數
2.1.2、刪除集合
db.collection.drop()
例子:
db.student.drop() --刪除student集合
2.2、文件
mongodb中文件的格式是json格式,下邊就是一個文件,包含兩個key:_id主鍵和name
{
"_id" : ObjectId("5b2cc4bfa6a44812707739b5"),
"name" : "黑馬程式設計師"
}
2.2.1、插入文件
db.COLEECTION_NAME.insert(document)
每個文件預設以_id作為主鍵,主鍵預設型別為ObjectId(物件型別),mongoDB會自動生成主鍵值
例如:
db.student.insert({"name":"黑馬程式設計師","age":10})
注意:同一個集合中的文件的key可以不相同,但是建議設定為相同的。
2.2.2、更新文件
db.collection.update(
<query>,
<update>,
<options>
)
- query:查詢條件,相當於sql語句的where
- update:更新文件內容
- options:選項
例子:
1、替換文件
將符合條件"name":"北京黑馬程式設計師"的第一個文件替換為{"name":"北京黑馬程式設計師","age":10}
db.student.update({"name":"黑馬程式設計師"},{"name":"北京黑馬程式設計師","age":10})
2、$set修改器
使用$set修改器指定要更新的key,key不存在則建立,存在則更新
將符合條件的"name":"北京黑馬程式設計師"的所有文件更新name和age的值
db.student.update({"name":"黑馬程式設計師"},{$set:{"name":"北京黑馬程式設計師","age":10}},{multi:true})
- multi:false表示更新第一個匹配的文件,true表示更新所有匹配的文件
2.2.3、刪除文件
db.student.remove(<query>)
- query:刪除條件,相當於sql語句中的wher
1、刪除所有文件
db.student.remove({})
2、刪除符合條件的文件
db.student.remove({"name":"黑馬程式設計師"})
2.2.4、查詢文件
db.collection.find(query, projection)
- query:查詢條件,可不填
- projection:投影查詢key,可不填
1、查詢全部
db.student.find()
2、查詢符合條件的記錄
查詢name等為"黑馬程式設計師"的文件
db.student.find({"name":"黑馬程式設計師"})
3、投影查詢
只顯示name和age兩個key,_id主鍵不顯示
db.student.find({"name":"黑馬程式設計師"},{name:1,age:1,_id:0})
三、操作使用者
3.1、建立使用者
mongo>db.createUser(
{ user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]}
)
例子:
建立root使用者,角色為root
use admin
db.createUser(
{
user:"root",
pwd:"root",
roles:[{role:"root",db:"admin"}]
}
)
內建角色如下:
1、資料庫使用者角色:read、readWrite
2、資料庫管理角色:dbAdmin、dbOwner、userAdmin
3、叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
4、備份恢復角色:backup、restore
5、所有資料庫角色:readAnyDatabase、readWriterAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6、超級使用者角色:root
3.2、認證登入
為了安全需要,MongoDB要開啟認證開關,即使用者連線MongoDB要進行認證,其中就可以通過賬號密碼進行認證。
1、在mongo.conf中設定auth=true
2、重啟MongoDB
3、使用賬號和密碼連線資料庫
mongo.exe -u root -p 123 --authenticationDatabase admin
3.3、查詢使用者
查詢當前庫下的所有使用者
show users
3.4、刪除使用者
db.dropUser("使用者名稱")
例子:刪除root1使用者
db.dropUser("root1")
3.5、修改使用者
db.updateUser(
"<username>",
{
customData : { <any information> },
roles : [
{ role: "<role>", db: "<database>" } | "<role>",
...
],
pwd: "<cleartext password>"
},
writeConcern: { <write concern> })
例子:修改root使用者的角色為readWriterAnyDatabase
use admin
db.updateUser("root",{roles:[{role:"readWriteAnyDatabase",db:"admin"}]})
3.6、修改密碼
db.changeUserPassword("username":"newPassword")
例子:修改root使用者的密碼為123
use admin
db.changeUserPassword("root":"123")