前戲:
啓動Mongodb
mongod --dbpath "數據庫目錄"
默認端口 27017python
show dbs 查看全部存在磁盤上的數據庫
show tables 查看當前數據庫存在磁盤上的數據表mysql
use 數據庫 建立數據庫或切換數據庫sql
######使用了不能存在的對象即建立該對象######mongodb
數據庫.表名 建立表數據庫
概念:數組
Mysql:
id name age duixiang hobby
1 jwb 73 2 2
2 ywb 84 1 null
MongoDB:ui
[ { "id":1, "name":"jwb", "age":73, "hobby":["ywb","lwb"], "duixiang":{ "id":2, "name":"ywb", "age":84 } }, { "id":2, "name":"ywb", "age":84, "duixiang":{ "id":1, "name":"jwb", "age":73, } } ]
mysql mongodb
數據庫 數據庫
表 collections
列 Field
row documentsspa
數據增刪改查
增長 insertunix
#db.user.insert({"id":1,"name":"jwb","age":73})
官方推薦寫法code
db.user.insertMany([{}])
db.user.insertOne({})
查看 find
db.user.find() db.user.findOne({}) db.user.find({"id":2,"age":85}) 並列條件 或條件: $or : db.user.find({$or:[{age:73},{name:"ywb"}]}) 同一個字段的 或條件 $in : db.user.find({age:{$in:[73,84,86]}}) 子集檢索 db.user.find({what:{$in:[2,1]}}) $all : 知足全部條件 db.user.find({what:{$all:[2,1,3]}})
數學比較符:
$gt : 大於 db.user.find({age:{$gt: 73}})
$gte: 大於等於
$lt : 小於
$lte: 小於等於
$eq : 等於
:也是等於
"_id" : ObjectId("5c3e84cf1e235402547fa40c")
更新:update 修改器 $set
#db.user.update({"age":84}, {$set:{"username":"jinjiaodawangba"}}) 官方推薦寫法: db.user.updateOne({"name":"jwb"},{$set:{"age":99}}) db.user.updateMany({"name":"jwb"},{$set:{"age":99}})
刪除:remove / delete
#db.user.remove({"age":85}) 官方推薦寫法: db.user.deleteOne({"name":"jwb"}) db.user.deleteMany({"name":"jwb"})
$修改器:
$set : 暴力修改 $unset : 暴力刪除字段 db.user.updateOne({"name":"ywb"},{$unset:{"hobby":1}}) $inc : 引用增長 在原有值的基礎上增長 db.user.updateMany({},{$inc:{age:1}}) array修改器: $push 增長元素 :db.user.updateOne({"name":"ywb"},{$push:{"hobby":"jwb"}}) $pull 刪除元素 :db.user.updateOne({"name":"ywb"},{$pull:{"hobby":"jwb"}}) $pushAll 迭代增長 :db.user.updateOne({"name":"ywb"},{$pushAll: {"hobby":[1,2,3]}}) $pop 刪除最後一條數據/第一條 : 最後一條 db.user.updateOne({"name":"ywb"},{$pop:{"hobby":1}}) 第一條 db.user.updateOne({"name":"ywb"},{$pop:{"hobby":-1}}) $ 字符: ["hj","tt",1,2] # {"hobby":"hj"} hj 是hobby列表中的第0個元素 就把 0 這個數據放在了 $ 中 db.user.updateMany({hobby:"hj"},{$set:{"hobby.$":"喝酒"}})
###### $ 存儲符合條件的元素下標索引 ######
Object操做
db.user.updateOne({"kecheng.name":"python"},{$set:{"kecheng.price":19800}}) db.user.updateOne({"kecheng.name":"python"},{$inc:{"kecheng.price":500}}) Array中的Object db.user.updateOne({"hobby.age":84},{$set:{"hobby.$.age":73}}) Object中的Array db.user.updateOne({"kecheng.class":15},{$set:{"kecheng.class.$":20}})
數據類型:
ObjectID :Documents 自生成的 _id
String: 字符串,必須是utf-8
Boolean:布爾值,true 或者false (這裏有坑哦~在咱們大Python中 True False 首字母大寫)
Integer:整數 (Int32 Int64 大家就知道有個Int就好了,通常咱們用Int32)
Double:浮點數 (沒有float類型,全部小數都是Double)
Arrays:數組或者列表,多個值存儲到一個鍵 (list哦,大Python中的List哦)
Object:若是你學過Python的話,那麼這個概念特別好理解,就是Python中的字典,這個數據類型就是字典
Null:空數據類型 , 一個特殊的概念,None Null
Timestamp:時間戳
Date:存儲當前日期或時間unix時間格式 (咱們通常不用這個Date類型,時間戳能夠秒殺一切時間類型)
MongoDB中的跳過選取排序:
skip(5) 跳過五條數據
limit(5) 只顯示五條數據
分頁 skip(5).limit(5)
sort({age:1}) 正序
sort({age:-1}) 倒序
pymongo排序 sort("key",pymongo.AESCENDING = 1)
ymongo排序 sort("key",pymongo.DESCENDING = -1)
若是三個關鍵字同時出現 1.sort 2.skip 3.limit