MongoDB - 文檔

1.文檔是什么鹦赎?

文檔是MongoDB中的數(shù)據(jù)基本單元,它以BSON(類似JSON)格式存放在集合中猾瘸。文檔類似于關系型數(shù)據(jù)庫中表的記錄界赔。

每個文檔都有一個特殊的鍵"_id",它在文檔所處的集合中是唯一的牵触。

2.文檔相關CURD

以下命令均以user集合為例

  • 寫入文檔
db.user.insert({ "name" : "tom", "age" : 12 })
db.user.save({ "name" : "tom", "age" : 12 })
  • 查詢文檔(更多查詢方式見文檔查詢這一篇淮悼,這里不一一展開)
db.user.find()
  • 更新文檔

save() 更新指定_id的文檔

db.user.save({"name":"tom","_id":ObjectId("5ae2983e9e56c4bf8d07e97f")})

update() 按條件更新文檔(更多文檔修改相關內(nèi)容見文檔修改這一篇)

# 語法
db.collection_name.update(
    查詢條件,
    整個文檔或修改器,
    upsert: 不存在匹配的文檔時是否寫入新文檔,默認false(可選)
    multi: 是否更新匹配的全部文檔揽思,默認false袜腥,此參數(shù)為true時第二個參數(shù)必須使用修改器(可選)
)
# 示例
db.user.update({"name":"tom"},{"name":"jack","age":12,"sex":"男"})
db.user.update({"name":"tom"},{"name":"jack","age":12,"sex":"男"},true)
db.user.update({"name":"tom"},{$set:{"name":"jack","age":12,"sex":"男"}},true,true,WriteConcern.SAFE)
db.user.update({"name":"tom"},{$set:{"name":"jack","age":12,"sex":"男"}},{multi:true})
  • 刪除文檔
# 語法
db.collection_name.remove(
    查詢條件,
    justOne: 匹配到多個文檔時是否只刪除一個文檔,默認false  (可選)
    writeConcern: 異常級別(可選)
)
# 示例
# 刪除指定_id的文檔
db.user.remove({"_id":ObjectId("5ae2983e9e56c4bf8d07e97f")}
# 刪除指定屬性的文檔钉汗,匹配多個文檔時只刪除一個文檔
db.user.remove({"name":"tom"},true)
# 刪除指定屬性的文檔羹令,匹配多個文檔時只刪除一個文檔,并指定寫操作的異常級別
db.user.remove({"name":"tom"},true,WriteConcern.NORMAL)
  • 更新或刪除并返回文檔
# 語法
db.collection.findAndModify({
    query: <document>,  # 查詢條件
    sort: <document>,  # 排序儡湾,只會更新會刪除匹配到的第一個文檔,如{"age":-1}表示按年齡倒序执俩,{"age":1}表示按年齡正序
    remove: <boolean>,  # 是否刪除徐钠,不能與update參數(shù)同時存在
    update: <document>,  # 整個文檔或修改器,不能與remove參數(shù)同時存在
    new: <boolean>,  # 是否返回更新后的文檔役首,默認為false尝丐,僅與update配合使用
    fields: <document>,
    upsert: <boolean>,  # 不存在匹配的文檔時是否寫入新文檔,默認false
    bypassDocumentValidation: <boolean>,
    writeConcern: <document>,
    collation: <document>,
    arrayFilters: [ <filterdocument1>, ... ]
});
# 示例
db.user.findAndModify({query:{"name":"tom"},update:{"name":"tom","age":13},sort:{"age":-1},new:true})
db.user.findAndModify({query:{"name":"tom"},remove:true})
  • 查詢滿足條件的文檔數(shù)量
db.user.count({"name":"jack"})

5.update修改器

6.聚合

原生聚合運算
聚合管道

7.寫操作異常級別

  • WriteConcern.NONE 無異常拋出
  • WriteConcern.NORMAL 僅拋出網(wǎng)絡錯誤異常衡奥,沒有服務器錯誤異常(默認)
  • WriteConcern.SAFE 拋出網(wǎng)絡錯誤異常爹袁、服務器錯誤異常;并等待服務器完成寫操作
  • WriteConcern.MAJORITY 拋出網(wǎng)絡錯誤異常矮固、服務器錯誤異常失息;并等待一個主服務器完成寫操作
  • WriteConcern.FSYNC_SAFE 拋出網(wǎng)絡錯誤異常、服務器錯誤異常档址;并等待服務器將寫操作刷新到磁盤
  • WriteConcern.JOURNAL_SAFE 拋出網(wǎng)絡錯誤異常盹兢、服務器錯誤異常;并等待服務器將寫操作提交到磁盤的日志文件
  • WriteConcern.REPLICAS_SAFE 拋出網(wǎng)絡錯誤異常守伸、服務器錯誤異常绎秒;并等待至少2臺服務器完成寫操作`
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市尼摹,隨后出現(xiàn)的幾起案子见芹,更是在濱河造成了極大的恐慌剂娄,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玄呛,死亡現(xiàn)場離奇詭異阅懦,居然都是意外死亡,警方通過查閱死者的電腦和手機把鉴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門故黑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人庭砍,你說我怎么就攤上這事场晶。” “怎么了怠缸?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵诗轻,是天一觀的道長。 經(jīng)常有香客問我揭北,道長扳炬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任搔体,我火速辦了婚禮恨樟,結果婚禮上,老公的妹妹穿的比我還像新娘疚俱。我一直安慰自己劝术,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布呆奕。 她就那樣靜靜地躺著养晋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪梁钾。 梳的紋絲不亂的頭發(fā)上绳泉,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音姆泻,去河邊找鬼零酪。 笑死,一個胖子當著我的面吹牛拇勃,可吹牛的內(nèi)容都是我干的蛾娶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼潜秋,長吁一口氣:“原來是場噩夢啊……” “哼蛔琅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起峻呛,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤罗售,失蹤者是張志新(化名)和其女友劉穎辜窑,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寨躁,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡穆碎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了职恳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片所禀。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖放钦,靈堂內(nèi)的尸體忽然破棺而出色徘,到底是詐尸還是另有隱情,我是刑警寧澤操禀,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布褂策,位于F島的核電站,受9級特大地震影響颓屑,放射性物質(zhì)發(fā)生泄漏斤寂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一揪惦、第九天 我趴在偏房一處隱蔽的房頂上張望遍搞。 院中可真熱鬧为居,春花似錦卖宠、人聲如沸钞诡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搀缠。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間护戳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工垂睬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留媳荒,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓驹饺,卻偏偏與公主長得像钳枕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赏壹,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理鱼炒,服務發(fā)現(xiàn),斷路器蝌借,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 簡介 NoSQL : 全名為Not Only SQL, 指的是非關系型的數(shù)據(jù)庫 隨著訪問量上升, 網(wǎng)站的數(shù)據(jù)庫性能...
    奮斗的老王閱讀 3,042評論 4 47
  • MongoDB文檔 MongoDB 概念解析 不管我們學習什么數(shù)據(jù)庫都應該學習其中的基礎概念昔瞧,在mongodb中基...
    birdflying閱讀 1,990評論 0 27
  • 我現(xiàn)在就只想能有個好身體自晰,存錢買把吉它凝化,買個新手機,有點閑錢買書酬荞,上網(wǎng)搓劫。不要覺得我是個很會忍受孤獨的人。其實我也害...
    敢己閱讀 255評論 0 1
  • 終于是回家了啊 高鐵上有些吵 但并不無聊 從來不覺得坐在車上會無聊混巧, 除了地鐵吧枪向,什么都看不見 下一站,無錫 感嘆...
    Cheryl_ak717閱讀 128評論 0 0