各項

_id字段

5a604e62 efe04a 6f4f a985e1
4字節(jié)時間戳 機器ID 進程ID 計數(shù)器

bson

bson是mongodb中用來標示文檔的二進制格式,它既是存儲格式,也是命令格式。所有文檔都以bson存儲在磁盤上,所有的查詢和命令都用bson文檔來指定。

聚合命令限制

distinct 和group,它們返回的結(jié)果集不能超過16M。16M的限制并不是這些命令本身所強加的閥值,這是所有的初始查詢結(jié)果的大小。如果distinct和group處理不了你的集合結(jié)果集,那么就只能使用map-reduce代替了,它的結(jié)果可以保存在集合中的非內(nèi)聯(lián)返回。

原子文檔處理

我們知道m(xù)ongodb不善于處理事物,但要是用戶確實需要需要進行查詢和更新同時操作怎么辦呢? 有一個工具你肯定不想錯過,那就是mongodb的findAndModify命令。該命令允許對文檔進行原子性更新,并在同一次調(diào)用中返回。

對數(shù)組使用$unset

請注意在單個數(shù)組元素上使用$unset的結(jié)果可能與你設想的不一樣。其結(jié)果只是將元素的值設置為null,而非刪除整個元素。要想徹底刪除某個數(shù)組元素,可以用$pull 和$pop操作符。

$addToSet和$push的區(qū)別

該兩者的功能都是給數(shù)組添加一個值。但是兩者之間有區(qū)別,$addToSet要添加的值如果不存在才進行添加操作,但是push只添加一個值;例如:

tags = [“tools”,”garden”]

如果執(zhí)行db.collection.update({},{$push:{tag:tools}}) 結(jié)果就是 [“tools”,”garden”,“tools”]

如果執(zhí)行db.collection.update({},{$addToSet:{tag:tools}}) 結(jié)果不變

稀疏索引創(chuàng)建

在稀疏索引中只會出現(xiàn)被索引鍵有值的文檔,如果想創(chuàng)建稀疏索引,指定{sparse:true}就可以了。例如:

Db.product.ensureIndex({sku:1},{unique:true,sparse:true})

Sku可能存在為null的文檔。

聲明索引時要小心

由于創(chuàng)建索引比較簡單,所以很容易在無意間創(chuàng)建索引,如果數(shù)據(jù)集很大的話,構(gòu)建會花費很長的時間。并且沒辦法中種植。同時創(chuàng)建索引時候最好先排序這樣更加高效。

用Explain(true)詳細查詢執(zhí)行計劃

用戶db.collection.find(condition).explain(true)

樂觀鎖

樂觀鎖就是并發(fā)控制,這項技術保證在無需鎖定記錄的情況下對器進行徹底更新。要理解它,最簡單的辦法就是想像一個wifi,有多個用戶可以同時編輯一個頁面。但你肯定不希望用戶編輯并更新一個過期的頁面,這是就可以使用樂觀鎖協(xié)議,當用戶試圖保存他們更改的時候,會在更新操作中增加一個時間戳,如果該值比這個頁面最近保存的版本舊,就不讓用戶更新。

這個在mongodb 執(zhí)行$inc中用到

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 學習《MongoDB 權(quán)威指南·第2版》的筆記,結(jié)合 MongoDB 官方最新文檔(v3.6),簡單記錄一些概念、...
    小魚愛小蝦閱讀 6,215評論 0 5
  • [TOC]未完更新中... 1. MongoDB安裝及配置 官網(wǎng)下載地址 安裝msc文件,現(xiàn)在3.4的版本,有了m...
    BigJeffWang閱讀 2,372評論 0 49
  • 1. MongoDB 簡介 MongoDB是一個可擴展的高性能,開源,模式自由,面向文檔的NoSQL,基于分布式文...
    rhlp閱讀 1,229評論 0 3
  • 前兩天小姨給我看她和表弟的照片,說朋友評價看起來像姐弟倆。說這話的時候小姨眼睛清清亮亮,止不住溢出來的笑...
    渡島閱讀 347評論 0 0
  • 隔著手機屏幕,我都能感受到阿七的心累,那是一種夾雜著無奈、委屈和憤怒的心累。 就在昨晚,阿七突然懷念起一個許久不聯(lián)...
    花下人閱讀 1,761評論 0 6

友情鏈接更多精彩內(nèi)容