日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

2.MongoDB基本操作

發(fā)布時(shí)間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2.MongoDB基本操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(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)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。