MongoDB

一、介紹

MongoDB是一個文件型數據庫,介於關係型數據庫和非關係型數據庫之間,他和咱們使用的關係型數據庫最大的區別就是約束性,能夠說文件型數據庫幾乎不存在約束性,沒有主外鍵約束,沒有存儲的數據類型約束。
Collection也就是關係型數據庫中"表"的概念,Documents就是"數據條目",Field就是"字段"
版本:3.4.15
注意配置環境變量,啓動服務端:mongod 啓動客戶端:mongomongodb

啓動以前必定要注意在安裝的盤符下建立 data/db文件結構數據庫

二、MongoDB的增刪改查

注意:MongoDB中若是你使用了不存在的對象,那麼就等於你在建立這個對象數組

數據庫與Collection的建立:
建立數據庫並使用該數據庫:use databaseName
顯示當前使用的數據庫:db
建立並使用Collection: db.tableNameunix

插入數據:

insertOne:db.Oldboy.insertOne({"name":"DragonFire","age":20})
insertMany:db.Oldboy.insertMany([{"name":"DragonFire","age":20},{"name":"alex","age":30}])對象

查詢數據:

db.Oldboy.find({name:"WuSir2b"})
db.Oldboy.findOne({age:19}) : 條件查找一條age等於19的數據,若有多條數據則返回更靠前的數據ip

修改數據

db.Oldboy.updateOne({"age":19},{$set:{"name":"WSSB"}}) # $set 是update時的關鍵字,沒有name屬性及建立name屬性utf-8

db.Oldboy.updateMany({"age":19},{$set:{"name":"pig_qi"}})rem

刪除數據:

db.Oldboy.remove({"name":"DragonFire"}) : 條件刪除name等於"DragonFire"的全部Document字符串

三、MongoDB數據類型

Object ID:Documents 自生成的 _id, 這個類型是不能夠被JSON序列化的
String: 字符串,必須是utf-8
Boolean:布爾值,true 或者false,小寫
Integer:整數 (Int32 Int64 大家就知道有個Int就好了,通常咱們用Int32)
Double:浮點數 (沒有float類型,全部小數都是Double)
Arrays:數組或者列表,多個值存儲到一個鍵 (list哦,大Python中的List哦)
Object:若是你學過Python的話,那麼這個概念特別好理解,就是Python中的字典,這個數據類型就是字典
Null:空數據類型 , 一個特殊的概念,None Null
Timestamp:時間戳
Date:存儲當前日期或時間unix時間格式 (咱們通常不用這個Date類型,時間戳能夠秒殺一切時間類型)get

四、$修改器

查詢中常見的 等於 大於 小於 大於等於 小於等於
db.Oldboy.findOne({"score":{"$gt:80"}})
db.Oldboy.findOne({"score":{"$lt:80"}})
db.Oldboy.findOne({"score":{"$gte:80"}})
db.Oldboy.findOne({"score":{"$lte:80"}})

update修改器: $inc $set $unset $push $pull

$inc:變量加等於一個值

db.Oldboy.update({"score":59},{$inc:{"score":1}}) #"score"的原有數值上面 +1
db.Oldboy.update({"score":60},{$inc:{"score":-40}})

$set:用來修改一個字段的值或者是建立一個新的字段

db.Oldboy.update({"score":100},{$set:{"english_name":"LuffyCity"}}) #:把 "score" 爲 100 分 的 "english_name" 賦值爲 "LuffyCity"

$unset:用來刪除一個字段

db.Oldboy.update({"score":100},{$unset:{"english_name":1}})

$push:向array中新增數據類型

db.Oldboy.updateMany({},{$set:{"test_list":[1,2,3,4,5]}})

注意:查詢條件爲空,也要寫上{},爲全部知足條件的 Document 添加 "test_list"

db.Oldboy.updateMany
({"score":100},{$push:{"test_list":6}})

將 "score" 爲 100 的Document 中"test_list" 添加一個 6

$pull:對array中的某個元素進行刪除

db.Oldboy.updateMany({"score":100},{$pull:{"test_list":6}})

$pop:指定刪除Array中的第一個 或 最後一個 元素

db.Oldboy.updateMany({"score":100},{$pop:{"test_list":1}})

{$pop:{"test_list" : -1}} -1 表明最前面, 1 表明最後邊

$和關鍵字一塊兒使用爲修改器,單獨使用代指篩選原數的下標

db.Oldboy.updateMany({"score":100,"test_list":2},{$set:{"test_list.$":9}})

五、array、objectde特殊用法

先創建一條數據
db.Oldboy.insert({"name":"路飛學城-騎士計劃","price":[19800,19500,19000,18800],"other":{"start":"2018年8月1日","start_time":"08:30","count":150}})

把price 中 19000 改成 19300
db.Oldboy.updateMany({"name":"路飛學城-騎士計劃"},{$set:{"price.2":19300}})

若是 price.1 中小於19800 則加 200
db.Oldboy.updateMany({"name":"路飛學城-騎士計劃","price.1":{$lt:19800}},{$inc:{"price.1":200}})

咱們把 price 小於 19500 的 自動補上 200
db.Oldboy.updateMany({"name":"路飛學城-騎士計劃","price":{$lt:19500}},{$inc:{"price.$":200}})

db.Oldboy.updateMany({"price.count":{$gt:175}},{$inc:{"price.$.count":15}})

六、skip,limit、sort

db.Oldboy.find().skip(1).limit(2)

db.Oldboy.find().sort({"price":1}) #1爲升序,-1爲降序

Sort + Skip + Limit 是有執行優先級的 他們的界別分別是 優先 Sort 其次 Skip 最後 Limt

相關文章
相關標籤/搜索