MongoDB是一個文件型數據庫,介於關係型數據庫和非關係型數據庫之間,他和咱們使用的關係型數據庫最大的區別就是約束性,能夠說文件型數據庫幾乎不存在約束性,沒有主外鍵約束,沒有存儲的數據類型約束。
Collection也就是關係型數據庫中"表"的概念,Documents就是"數據條目",Field就是"字段"
版本:3.4.15
注意配置環境變量,啓動服務端:mongod 啓動客戶端:mongomongodb
啓動以前必定要注意在安裝的盤符下建立 data/db文件結構數據庫
注意: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字符串
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
db.Oldboy.update({"score":59},{$inc:{"score":1}}) #"score"的原有數值上面 +1
db.Oldboy.update({"score":60},{$inc:{"score":-40}})
db.Oldboy.update({"score":100},{$set:{"english_name":"LuffyCity"}}) #:把 "score" 爲 100 分 的 "english_name" 賦值爲 "LuffyCity"
db.Oldboy.update({"score":100},{$unset:{"english_name":1}})
db.Oldboy.updateMany({},{$set:{"test_list":[1,2,3,4,5]}})
db.Oldboy.updateMany
({"score":100},{$push:{"test_list":6}})
db.Oldboy.updateMany({"score":100},{$pull:{"test_list":6}})
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}})
先創建一條數據
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}})
db.Oldboy.find().skip(1).limit(2)
db.Oldboy.find().sort({"price":1}) #1爲升序,-1爲降序
Sort + Skip + Limit 是有執行優先級的 他們的界別分別是 優先 Sort 其次 Skip 最後 Limt