[mongoDB] M001課程學(xué)習(xí)筆記

電子結(jié)業(yè)證書(shū)

mongoDB基礎(chǔ)

基礎(chǔ)CRUD

Update

  • insert

    • _id是每條記錄的必填字段,不一定是ObjectId類(lèi)型铣墨。默認(rèn)使用ObjectId類(lèi)型以確保_id不重復(fù)

    • db.name.insert({}) db.name.insert([{},{}])

    • db.name.insert([{},{}], "ordered":false)

      • ordered=true 一條記錄插入失敗沙峻,后面的記錄不會(huì)插入
      • ordered=false 一條記錄插入失敗后刁卜,后面的插入操作還會(huì)繼續(xù)
  • update

  • delete

    • db.Name.deleteOne() db.Name.deleteMany()
    • db.name.drop() 刪除collection
    • 刪除一個(gè)database下的所有collection時(shí),也會(huì)刪掉database
  • upsert

    • 默認(rèn)為false
    • db.name.updateMany({"field":value}, {"$set":{"field2":value2}}, {"upsert":true})

Find

  • db.FindOne() db.FindOne({})

  • comparison operators

    • eqne gtlt gtelte $regex
  • logic operators

    • andor nornot

    • nor : fail to match both clauses 后面可以跟多個(gè)匹配條件 db.name.find({"nor":[{"field1:1"}, {"field2":2}])

    • $not : negate the query requirement 后面只跟一個(gè)匹配條件

      • db.name.find({"field1":{"$not":{"eq":"123"}}}) 正確
      • db.name.find({"$not":{"field1":"123"}}) 錯(cuò)誤
  • expression operators

    • $expr

      • 作用:在同一個(gè)文檔內(nèi)做比較
  • projection

    • 指定返回的結(jié)果包含哪些字段骇笔,不包含哪些字段
    • db.name.find({"field":value}, {"filed2":1})
    • projection中只能使用全0或全1,除非想返回某些字段但不想返回_id
  • $elemMatch

    • 數(shù)組中元素匹配
  • dot notation

    • db.name.find("field1.field2":value)
    • db.name.find({"array1.0.field1":value})
  • sort & limit

    • db.name.find().sort({"field":1}).limit(1)

      • sort({"pop":1}) 升序
      • sort({"pop":-1}) 降序
  • index

    • createIndex{"field":1}

      • 1表示升序嚣崭,-1表示降序

import/export

  • mongodump
    mongoexport
    mongorestore
    mongoimport

aggregation framework

  • db.name.aggregate

    • aggregate中的語(yǔ)句會(huì)順序執(zhí)行 pipeline
  • stages:matchgroup $project

concept

$

  • 代表操作符

  • 代表取字段的值

    • {"expr":{"eq"["start station id", "end station id"]:}}

syntax

  • MQL syntax

    • {"field":{operator:value}}
  • aggregation syntax

    • {operator:{"field":value}}

cursor method

  • pretty() count() sort() limit()
  • cursor.limit().sort() means cursor.sort().limit()
  • 排序時(shí)笨触,null值被認(rèn)為是最小值

ACID

concern

  • write conern

    • one(數(shù)據(jù)被寫(xiě)入1臺(tái)server)
    • majority
  • read concern

    • local (default)
    • majority
  • read preference(從哪里讀)

    • primary
    • nearest
    • certain node

model methodology

    1. workload description 列出可能的查詢(xún),每個(gè)查詢(xún)的速度要求
    1. decide relationship: embedding/reference
    1. schema design patterns 選擇模型的設(shè)計(jì)模式

validation

  • 子主題 1

atlas界面操作

在文檔中插入記錄

其他備注

密碼:m001-mongodb-basics

cases

example1

  • {"amenities":["shampoo"]} 查找字段是array且只包含"shampoo"的記錄
  • {"amenities":["shampoo", "wifi"]} 查找的結(jié)果與數(shù)組中元素的順序有關(guān)
  • {"amenities":{"$all":["shampoo", "wifi"]}} 查找字段是數(shù)組且至少包含shampoo和wifi的記錄有鹿,不管元素的排序
  • {"amenities":{"$size":20}} 指定數(shù)組的長(zhǎng)度

example2

  • db.name.aggregate([{"match":{}, "group":{"_id":"address.country", "total":{"sum":1}}}])
  • db.name.aggregate([{"match":{}, "group":{"_id":"address.country", "total":{"sum":"$price"}}}])

XMind - Trial Version

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末旭旭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子葱跋,更是在濱河造成了極大的恐慌持寄,老刑警劉巖源梭,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異稍味,居然都是意外死亡废麻,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)模庐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)烛愧,“玉大人,你說(shuō)我怎么就攤上這事掂碱×耍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵疼燥,是天一觀的道長(zhǎng)沧卢。 經(jīng)常有香客問(wèn)我,道長(zhǎng)醉者,這世上最難降的妖魔是什么但狭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮撬即,結(jié)果婚禮上立磁,老公的妹妹穿的比我還像新娘。我一直安慰自己剥槐,他們只是感情好唱歧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著才沧,像睡著了一般迈喉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上温圆,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天挨摸,我揣著相機(jī)與錄音,去河邊找鬼岁歉。 笑死得运,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锅移。 我是一名探鬼主播熔掺,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼非剃!你這毒婦竟也來(lái)了置逻?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤备绽,失蹤者是張志新(化名)和其女友劉穎券坞,沒(méi)想到半個(gè)月后鬓催,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恨锚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年宇驾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猴伶。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡课舍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出他挎,到底是詐尸還是另有隱情筝尾,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布雇盖,位于F島的核電站忿等,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏崔挖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一庵寞、第九天 我趴在偏房一處隱蔽的房頂上張望狸相。 院中可真熱鬧,春花似錦捐川、人聲如沸脓鹃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瘸右。三九已至,卻和暖如春岩齿,著一層夾襖步出監(jiān)牢的瞬間太颤,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工盹沈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留龄章,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓乞封,卻偏偏與公主長(zhǎng)得像做裙,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子肃晚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354