關於Mongodb

MongoDB

一 開啓MongoDB服務 並進入數據庫

(1) 開啓一個終端

>cd MongoDB的bin目錄python

cd C:\mongodb\binmongodb

>mongod.exe --dbpath=數據庫存放的路徑數據庫

mongod.exe --dbpath=C:\Users\xlg\PycharmProjects\pythonsh1702\day18\dbjson

(2) 在開啓一個終端

>cd MongoDB的bin目錄數組

cd C:\mongodb\bin數據結構

>mongo.exe函數

二 MongoDB

MongoDB將數據存儲爲文檔,數據結構由key=>value 組成 MongoDB文檔相似於json 字段值能夠包含其餘的文檔或者是數組spa

存儲的概念(區別)
SQL術語/概念 MongoDB的術語/概念 解釋/說明
database database 數據庫
table collection 數據庫表/集合
row document 行/文檔
column field 數據字段/域
primary key primary key 主鍵索引/MongoDB自動將_id設置爲主鍵索引

 

三 對於庫的操做

  1. 查看全部的庫rest

    show dbscode

  2. 選擇數據庫(庫存在就選擇 不存在就建立)use 庫名

    當不存在的庫建立之後 使用show dbs查看不到的 可是 將當前的庫裏面建立一個集合當前的庫就會顯示出來

  3. 查看當前所在的數據庫

    db.getName()

注意:

MongoDB 嚴格區分大小寫

四 對於集合的操做

  1. 建立集合

    db.createCollection('集合名稱')

    db.createCollection('user') #建立一個叫user的集合

  2. 查看全部的集合

    show conllections

  3. 刪除集合

    db.集合名.drop()

    db.user.drop() #刪除user集合

五 INSERT/SAVE 文檔的添加

(1) insert 添加文檔(添加一條)

db.集合名.insert(文檔)

db.user.insert({"name":"張三"})

(2) 插入多條數據

db.集合名.insert([文檔1,文檔2...])

db.user.insert([{name:"李四",age:20,hobby:"寫代碼"},{age:18,name:"王五"}])

注意:

若是添加多條文檔的時候 []忘記添加 則默認添加第一條文檔

(3) save 添加數據

db.user.save({ "name" : "王六" })

(4) save 修改數據(更確切的說 文檔的覆蓋)

db.user.save({ "_id" : ObjectId("5a1fb5eb9c1f997934c661d4"), "name" : "王六" })

3.2新版本的建議添加

db.collection.insertOne() 添加一條文檔

db.collection.insertMany() 添加多條文檔

多條文檔依然使用[]來添加 不然報錯

 

六 UPDATE修改

 
 
 
 
 
db.collection.update(
query,條件
update, 
修改的操做符:
1.$inc 累加修改
2.$set 直接修改
{
 upsert:boolean,#true 做爲新數據插入 默認FALSE
 multi:boolean #true,false #true修改所有   默認是FALSE 只修改一條 
}
)
 
主體結構:

db。collection.update({條件},{$set/$inc:{key:value}})

db.user.update({name:"張三"},{$inc:{age:2}})

upsert 的操做

db.user.update({name:"張三四"},{$set:{age:2}},{upsert:true})

multi 的操做

db.user.update({name:"張三"},{$set:{age:12}},{multi:true})

upsert 和 multi的組合寫法

db.user.update({name:"張三"},{$set:{age:12}},true/false,true/false)

3.2之後 建議

db.collection.updateOne() 只修改一條

db.collection.updateMany() 修改多條

 

七 FIND查詢

(1) find 查詢全部

db.collection.find() #默認查詢全部

db.collection.find({條件},{field:0/1}) #要求那些字段顯示或者不顯示

0 表明除了它之外的field都顯示

1 表明只顯示當前的field

錯誤的寫法
 
 
 
 
 
db.user.find({},{name:1,age:0})
 
正確的寫法
 
 
 
 
 
db.user.find({},{name:1,_id:0})
 
(2) findOne 查看一條數據

db.collection.findOne({條件},{field:1/0})

(3) count 統計條數

db.collection.find({條件},{field:0/1}).count()

(4) pretty 展開查看

db.user.find().pretty()

(5) 查詢條件的操做符
 
 
 
 
 
1 $gt >     db.collection.find({age:{$gt:10}})
2 $gte >=     db.collection.find({age:{$gte:10}})
3 $lt <     db.collection.find({age:{$lt:10}})
4 $lte <=     db.collection.find({age:{$lte:10}})
5 $ne   !=     db.collection.find({age:{$ne:10}})
6 {field:值}     db.collection.find({age:10})
7 使用id來查詢 ObjectId("5a1fb8b29c1f997934c661d9")
8 /數據/   模糊查詢   db.collection.find({name://})
9 /^數據/ 以...做爲開頭   db.collection.find({name:/^/})
10 /數據$/ 以...結尾   db.collection.find({name:/張$/})
11 $in   在...以內  db.collection.find({age:{$in:[10,20,30]}})
12 $nin   不在...以內  db.collection.find({age:{$nin:[10,20,30]}})
 
(6) and查詢

db.collection.find({key1:val1,key2:val2......})

db.user.find({name:/張/,age:{$gte:10,$lte:20}})

錯誤的寫法

db.user.find({name:"張三",name:"李四"}) #前面的name被後面的覆蓋了

(7) or 的查詢

db.collection.find({$or:[{條件1,條件2...}]})

db.user.find({$or:[{name:"張三"},{name:"李四"}]}) #查詢name爲張三或者李四的全部文檔

#查詢name爲李四 年齡大於10 或 小於20

(8) and 和 or的組合寫法

db.collection.find({條件1,條件2..,$or:[{條件1},{條件2}...]})

db.user.find({name:"張三",$or:[{age:{$gte:10}},{age:{$lte:20}}]}) #查詢name爲張三 而且 年齡爲大於等於10或者小於等於20

(9) limit 取值

db.collection.find().limit(num)

db.user.find().limit(3) #從0開始去三條數據

(10) skip 跳過幾條數據

db.collection.find().skip(num) #查詢數據 跳過num條

一般和limit配合使用

db.collection.find().skip(num).limit(num) #跳過幾條數據取幾條

(11) sort 排序

db.collection.find().sort({age:1/-1}) #查詢數據升序或者降序

db.user.find().sort({age:-1}).limit(1) #取出年齡最大的一條文檔

 

八 REMOVE刪除

db.collection.remove({條件},1)

(1) 默認刪除全部

db.collection.remove({條件}) #刪除全部匹配到的文檔

(2) 只刪除一條文檔

刪除一條

db.user.remove({name:"張三"},1)

db.user.remove({name:"張三"},{justOne:true})

(3) 刪除全部文檔

db.collection.remove({})

3.2版本之後的建議刪除的函數

db.collection.deleteOne()

db.collection.deleteMany()

 

九 刪除數據庫

刪除以前最好去use一下(肯定刪除你當前所在的數據庫)

數據庫的退出

exit

十 數據庫的備份和恢復

備份:

先啓動MongoDB的服務

打開一個新的終端

cd ->MongoDB的bin目錄下

mongodump

恢復

先啓動MongoDB的服務

mongod.exe --dbpath=新的數據庫的路徑

打開一個新的終端

cd ->MongoDB的bin目錄下

mongorestore

相關文章
相關標籤/搜索