2.MongoDB基本操作
數(shù)據(jù)庫(kù)命令
連接成功后,默認(rèn)使用test數(shù)據(jù)庫(kù)
- 查看當(dāng)前數(shù)據(jù)庫(kù)名稱:db
查看所有數(shù)據(jù)庫(kù)名稱:show dbs
切換數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在也并不創(chuàng)建,直到插入數(shù)據(jù)或創(chuàng)建集合時(shí)數(shù)據(jù)庫(kù)才被創(chuàng)建:use 數(shù)據(jù)庫(kù)名稱
刪除當(dāng)前指向的數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在,則什么也不做:db.dropDatabase()
?
?
集合命令
可以不手動(dòng)創(chuàng)建集合,向不存在的集合中第一次加入數(shù)據(jù)時(shí),集合會(huì)被創(chuàng)建出來(lái)
db.createCollection(name,options)
- 例1:不限制集合大小
db.createCollection("stu")
- 例2:限制集合大小,后面學(xué)會(huì)插入語(yǔ)句后可以查看效果
- 參數(shù)capped:默認(rèn)值為false表示不設(shè)置上限,值為true表示設(shè)置上限
- 參數(shù)size:當(dāng)capped值為true時(shí),需要指定此參數(shù),表示上限大小,當(dāng)文檔達(dá)到上限時(shí),會(huì)將之前的數(shù)據(jù)覆蓋,單位為字節(jié)
db.createCollection("sub",{ capped : true, size : 10 } )
- 查看當(dāng)前數(shù)據(jù)庫(kù)的集合:show collections
- 刪除命令:db.集合名稱.drop()
注:可以存在空集合,但是不存在空庫(kù)
?
數(shù)據(jù)類型
- 下表為MongoDB中常用的幾種數(shù)據(jù)類型:
- Object ID:文檔ID
- String:字符串,最常用,必須是有效的UTF-8
- Boolean:存儲(chǔ)一個(gè)布爾值,true或false
- Integer:整數(shù)可以是32位或64位,這取決于服務(wù)器
- Double:存儲(chǔ)浮點(diǎn)值
- Arrays:數(shù)組或列表,多個(gè)值存儲(chǔ)到一個(gè)鍵
- Object:用于嵌入式的文檔,即一個(gè)值為一個(gè)文檔
- Null:存儲(chǔ)Null值
- Timestamp:時(shí)間戳,表示從1970-1-1到現(xiàn)在的總秒數(shù)
- Date:存儲(chǔ)當(dāng)前日期或時(shí)間的UNIX時(shí)間格式
- 創(chuàng)建日期語(yǔ)句如下
- 注意:參數(shù)的格式為YYYY-MM-DD
new Date('2017-12-20')
object id
- 每個(gè)文檔都有一個(gè)屬性,為_id,保證每個(gè)文檔的唯一性
- 可以自己去設(shè)置_id插入文檔
- 如果沒有提供,那么MongoDB為每個(gè)文檔提供了一個(gè)獨(dú)特的_id,類型為objectID
- objectID是一個(gè)12字節(jié)的十六進(jìn)制數(shù)
- 前4個(gè)字節(jié)為當(dāng)前時(shí)間戳
- 接下來(lái)3個(gè)字節(jié)的機(jī)器ID
- 接下來(lái)的2個(gè)字節(jié)中MongoDB的服務(wù)進(jìn)程id
- 最后3個(gè)字節(jié)是簡(jiǎn)單的增量值
?
?
插入:db.集合名稱.insert(document)
插入文檔時(shí),如果不指定_id參數(shù),MongoDB會(huì)為文檔分配一個(gè)唯一的ObjectId
?
簡(jiǎn)單查詢:db.集合名稱.find()
?
更新
db.集合名稱.update(
??? <query> ,<update>,{multi:<boolean>}
)
- 參數(shù)query:查詢條件,類似sql語(yǔ)句update中where部分
- 參數(shù)update:更新操作符,類似sql語(yǔ)句update中set部分
- 參數(shù)multi:可選,默認(rèn)是false,表示只更新找到的第一條記錄,值為true表示把滿足條件的文檔全部更新
- 例3:全文檔更新
db.stu.update({name:'hr'},{name:'mnc'})
- 例4:指定屬性更新,通過(guò)操作符$set
db.stu.insert({name:'hr',gender:0})
db.stu.update({name:'hr'},{$set:{name:'hys'}})
- 例5:修改多條匹配到的數(shù)據(jù)
db.stu.update({},{$set:{gender:0}},{multi:true})
保存:db.集合名稱.save(document)
- 如果文檔的_id已經(jīng)存在則修改,如果文檔的_id不存在則添加
- 例6db.stu.save({_id:'20160102','name':'yk',gender:1})
- 例7db.stu.save({_id:'20160102','name':'wyk'})
?
刪除
db.集合名稱.remove(
??? <query>,{justOne:<boolean>}
)
- 參數(shù)query:可選,刪除的文檔的條件
- 參數(shù)justOne:可選,如果設(shè)為true或1,則只刪除一條,默認(rèn)false,表示刪除多條
- 例8:只刪除匹配到的第一條
db.stu.remove({gender:0},{justOne:true})
- 例9:全部刪除
db.stu.remove({})
?
?
總結(jié)
以上是生活随笔為你收集整理的2.MongoDB基本操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python中elif和while简单介
- 下一篇: 微信小程序基础(一)