mongodb,是一種結構最像mysql的nosql
mysql中的數據庫,mongodb中也有,區別在於,
myql中數據庫下的是表,字段和數據的形式存在
mongodb數據庫下的是叫集合(和python中的集合不是一個概念),文檔,字典的形式存在
而mysql,redis,mongodb,三者的區別:
mysql適合長期保存,可存儲的數據量大,時間長
redis存儲時間短,但調用反應快,時間短,適合一直在不停的變化的數據
mongodb存在於兩者中間,速度一般,保存時間一般,適合一段時間查看一次的數據(個人理解,勿噴)
進入mongodb
mongo
退出mongodb
exit()
查看所有的庫
show dbs
進入數據庫:mongodb沒有創建數據庫的操作,只用進入不存在的庫,然后創建一個集合,數據庫就算建好了
use 庫名
刪除數據庫:必須在進入到了需要刪除的數據庫下,在輸入下面代碼,才能刪除
db.dropDatabase()
進入數據庫后,查看數據庫下的集合
show collections
刪除數據庫下的某個集合
db.集合名.drop()
插入數據到集合中
db.集合名.insert({name:'pywjh', age:22})
查看集合內容:集合中的每條數據都會自帶一條{"_id" : ObjectId("5b73e63943494008f8a8111b"}的系統ID,可以自己聲明ID,不然會系統自動生成
ID是唯一的,不能重復!
db.集合名.find()
{ "_id" : ObjectId("5b73e63943494008f8a8111b"), "name" : "pywjh", "age" : 22 }
注意:查詢結果最多顯示20條,可以用DBQuery shellBatchSize=30 更改
查看集合內容:(自帶美顏的查詢方法)
db.集合名.find().pretty() 也叫美觀查詢
集合中的條件查詢
db.集合名.find({name:'pywjh'})
或者
db.集合名.find({age:22})
都會返回: { "_id" : ObjectId("5b73e63943494008f8a8111b"), "name" : "pywjh", "age" : 22 }
如果數據較多,只需要查看某些特定的數據內容,可以設置打印內容
db.集合名.find({name:'pywjh'}, {age:1})
'1'表示布爾值,True 這里是表示搜索name為pywjh的數據,只打印age
db.集合名.find({name:'pywjh'}, {age:0})
'0'表示除了age不打印,其余的都要打印
集合中更新數據
全文檔更新:
db.集合名.update({name:'pywjh'},{xxx:'yyy'})
前一個大括號表示搜索數據位置,后一個大括號表示更新內容, 全文檔更新表示將搜索出的數據,直接改變,直接覆蓋,慎用
指定屬性,單條更新:$set
db.集合名.update({name:'pywjh'},{$set:{name:'xxx',age:44}}) 如果搜索的條件出現多個結果,此操作只會更改一條數據(從上到下)
指定屬性,多條更新:{multi:true}
db.集合名.update({name:'pywjh'},{$set{name:'yyy',age:33},{multi:true}})
集合中刪除數據
多條刪除
db.集合名.remove({name:'xxx'})
單條刪除:{justOne:true}
db.集合名.remove({name:'yyy'}, {justOne:true}) 只會刪除一條數據,從上到下
