14 yam uas kuv xav kom kuv paub ua ntej pib nrog MongoDB

Kev txhais lus ntawm tsab xov xwm tau npaj rau hnub ua ntej ntawm kev pib kawm "Non-relational databases".

14 yam uas kuv xav kom kuv paub ua ntej pib nrog MongoDB

Cov ntsiab lus tseem ceeb:

  • Nws yog ib qho tseem ceeb heev los tsim ib qho schema txawm tias nws xaiv tau hauv MongoDB.
  • Ib yam li ntawd, indexes yuav tsum phim koj schema thiab nkag mus rau cov qauv.
  • Tsis txhob siv cov khoom loj thiab cov khoom loj.
  • Ceev faj nrog MongoDB nqis, tshwj xeeb tshaj yog thaum nws los txog rau kev ruaj ntseg thiab kev ntseeg siab.
  • MongoDB tsis muaj cov lus nug optimizer, yog li koj yuav tsum tau ceev faj thaum ua cov lus nug.

Kuv tau ua haujlwm nrog databases ntev heev, tab sis nyuam qhuav nrhiav MongoDB xwb. Muaj ob peb yam uas kuv xav kom kuv paub ua ntej kuv pib ua haujlwm nrog nws. Thaum ib tus neeg twb muaj kev paub dhau los hauv qee qhov chaw, lawv muaj kev xav ua ntej txog cov ntaub ntawv dab tsi thiab lawv ua dab tsi. Hauv kev cia siab tias yuav ua kom yooj yim rau lwm tus to taub, kuv nthuav qhia cov npe ntawm qhov yuam kev.

Tsim MongoDB server yam tsis muaj kev lees paub

Hmoov tsis zoo, MongoDB tau teeb tsa yam tsis muaj kev lees paub los ntawm lub neej ntawd. Rau qhov chaw ua haujlwm nkag hauv zos, qhov kev coj ua no yog qhov qub. Tab sis txij li MongoDB yog ntau tus neeg siv cov kab ke uas nyiam siv ntau lub cim xeeb, nws yuav zoo dua yog tias koj muab tso rau hauv lub server nrog RAM ntau npaum li sai tau, txawm tias koj tsuas yog yuav siv nws rau kev txhim kho. Kev txhim kho ntawm tus neeg rau zaub mov ntawm qhov chaw nres nkoj default tuaj yeem muaj teeb meem, tshwj xeeb tshaj yog tias muaj javascript code tuaj yeem ua tiav hauv qhov kev thov (piv txwv li, $where ua ib lub tswv yim rau kev txhaj tshuaj).

Muaj ntau ntau txoj kev lees paub, tab sis qhov yooj yim tshaj plaws yog los teeb tsa tus neeg siv ID / password. Siv lub tswv yim no thaum koj xav txog qhov zoo nkauj authentication raws li LDAP. Thaum nws los txog rau kev ruaj ntseg, MongoDB yuav tsum tau hloov kho tas li, thiab cov cav yuav tsum tau kuaj xyuas kom tsis muaj kev tso cai. Piv txwv li, kuv nyiam xaiv qhov chaw nres nkoj sib txawv raws li qhov chaw nres nkoj default.

Tsis txhob hnov ​​​​qab khi qhov chaw nres rau MongoDB

MongoDB Security Checklist muaj cov lus qhia zoo los txo cov kev pheej hmoo ntawm kev nkag mus hauv network thiab cov ntaub ntawv xau. Nws yog ib qho yooj yim los txhuam nws thiab hais tias kev txhim kho server tsis xav tau kev ruaj ntseg siab. Txawm li cas los xij, nws tsis yooj yim thiab qhov no siv tau rau txhua tus MongoDB servers. Tshwj xeeb, yog tias tsis muaj laj thawj txaus los siv mapReduce, group los yog $ qhov twg, koj yuav tsum tau lov tes taw kev siv arbitrary code nyob rau hauv JavaScript los ntawm kev sau ntawv nyob rau hauv cov ntaub ntawv configuration javascriptEnabled:false. Txij li thaum cov ntaub ntawv cov ntaub ntawv tsis encrypted nyob rau hauv tus qauv MongoDB, nws ua rau kev txiav txim siab khiav MongoDB nrog Dedicated User, uas muaj kev nkag mus rau tag nrho cov ntaub ntawv, nrog kev txwv tsis pub nkag mus rau nws nkaus xwb thiab muaj peev xwm siv lub operating system tus kheej cov ntaub ntawv nkag mus tswj.

Yuam kev thaum tsim lub voj voog

MongoDB tsis siv schema. Tab sis qhov no tsis tau txhais hais tias lub tswv yim tsis xav tau. Yog tias koj tsuas yog xav khaws cov ntaub ntawv yam tsis muaj tus qauv zoo ib yam, khaws cia tuaj yeem ua tau sai thiab yooj yim, tab sis khaws lawv tom qab tuaj yeem nyuaj. damn nyuaj.

Classic tsab xov xwm "6 Txoj Cai ntawm Thumb rau MongoDB Schema Tsim" Nws tsim nyog nyeem, thiab nta zoo li Schema Explorer nyob rau hauv lub thib peb-tog cuab yeej Studio 3T, nws yog tsim nyog siv rau tsis tu ncua xyuas ntawm circuits.

Tsis txhob hnov ​​qab qhov kev txiav txim

Tsis nco qab qhov kev txiav txim tuaj yeem ua rau muaj kev ntxhov siab ntau dua thiab nkim sijhawm ntau dua li lwm qhov kev teeb tsa tsis raug. Los ntawm lub neej ntawd MongoBD siv binary sib. Tab sis nws tsis zoo li yuav muaj txiaj ntsig rau leej twg. Case-sensitive, accent-sensitive, binary xaiv tau suav hais tias xav paub anachronisms nrog rau cov hlaws, caftans thiab curly mustaches rov qab rau hauv 80s ntawm lub xyoo pua xeem. Tam sim no lawv siv yog unforgivable. Hauv lub neej tiag tiag, "maus taus" yog tib yam li "Motorcycle". Thiab "Britain" thiab "Britain" yog tib qhov chaw. Ib tsab ntawv me me tsuas yog tus lej loj sib npaug ntawm tsab ntawv loj. Thiab tsis txhob ua rau kuv pib ntawm sorting diacritics. Thaum tsim cov ntaub ntawv hauv MongoDB, siv accent-insensitive collation thiab sau npe, uas sib xws rau cov lus thiab system neeg siv kab lis kev cai. Qhov no yuav ua rau kev tshawb nrhiav los ntawm txoj hlua cov ntaub ntawv yooj yim dua.

Tsim cov ntawv sau nrog cov ntaub ntawv loj

MongoDB zoo siab los tuav cov ntaub ntawv loj txog 16MB hauv kev sau, thiab GridFS Tsim los rau cov ntaub ntawv loj dua 16 MB. Tab sis tsuas yog vim cov ntaub ntawv loj tuaj yeem muab tso rau ntawd, khaws cia lawv tsis yog lub tswv yim zoo. MongoDB yuav ua haujlwm zoo tshaj yog tias koj khaws cov ntaub ntawv ib tus neeg uas muaj ob peb kilobytes loj, kho lawv zoo li kab hauv lub rooj dav SQL. Cov ntaub ntawv loj yuav yog qhov teeb meem nrog kev tsim khoom.

Tsim cov ntaub ntawv nrog cov array loj

Cov ntaub ntawv tuaj yeem muaj arrays. Nws yog qhov zoo tshaj yog tias tus naj npawb ntawm cov ntsiab lus hauv array nyob deb ntawm tus lej plaub. Yog hais tias cov ntsiab lus tau ntxiv rau ib qho array nquag, nws yuav outgrow cov ntaub ntawv uas muaj nws thiab yuav tsum tau txav mus, uas txhais tau tias nws yuav tsim nyog hloov tshiab indexes ib yam nkaus. Thaum rov txheeb xyuas cov ntaub ntawv nrog cov array loj, cov indexes feem ntau yuav raug sau dua, vim tias muaj ib qho ntawv, uas khaws nws cov index. Qhov re-indexing no kuj tshwm sim thaum ib daim ntawv tso lossis tshem tawm.

MongoDB muaj qee yam hu ua "fill factor", uas muab chaw rau cov ntaub ntawv loj hlob kom txo tau qhov teeb meem no.
Tej zaum koj yuav xav tias koj tuaj yeem ua yam tsis muaj array indexing. Hmoov tsis zoo, qhov tsis muaj qhov ntsuas yuav ua rau koj muaj lwm yam teeb meem. Txij li thaum cov ntaub ntawv raug luam tawm los ntawm qhov pib mus rau qhov kawg, kev tshawb nrhiav cov ntsiab lus ntawm qhov kawg ntawm cov array yuav siv sij hawm ntev dua, thiab cov haujlwm feem ntau cuam tshuam nrog cov ntaub ntawv no yuav yog. qeeb.

Tsis txhob hnov ​​​​qab tias qhov kev txiav txim ntawm cov theem hauv kev sib sau ua ke tseem ceeb

Hauv cov txheej txheem database nrog cov lus nug optimizer, cov lus nug uas koj sau yog cov lus piav qhia ntawm qhov koj xav tau, tsis yog yuav ua li cas. Cov txheej txheem no ua haujlwm los ntawm kev sib piv nrog kev xaj hauv tsev noj mov: feem ntau koj tsuas yog xaj ib lub tais, thiab tsis txhob muab cov lus qhia ntxaws rau tus ua noj.

Hauv MongoDB, koj qhia tus ua noj. Piv txwv li, koj yuav tsum xyuas kom meej tias cov ntaub ntawv hla dhau reduce kom ntxov li sai tau hauv cov kav dej siv $match и $project, thiab sorting tshwm sim tsuas yog tom qab reduce, thiab qhov kev tshawb nrhiav tshwm sim raws nraim qhov kev txiav txim koj xav tau. Muaj cov lus nug optimizer uas tshem tawm cov haujlwm tsis tsim nyog, ua kom zoo raws li cov kauj ruam, thiab xaiv cov hom tuaj yeem ua rau koj lwj. Nrog MongoDB, koj muaj kev tswj hwm ntau dua ntawm tus nqi yooj yim.

Cov cuab yeej zoo li Studio 3 T yuav ua kom yooj yim rau kev tsim kho cov lus nug sib sau ua ke hauv MongoDB. Lub Aggregation Editor feature tso cai rau koj los siv cov lus qhia hauv ib theem ntawm ib lub sijhawm, thiab tshuaj xyuas cov ntaub ntawv tawm tswv yim thiab tso tawm ntawm txhua theem kom yooj yim rau kev debugging.

Siv Quick Recording

Tsis txhob teem MongoDB sau cov kev xaiv kom muaj kev kub ceev tab sis tsis tshua muaj kev ntseeg siab. Hom no "file-and-forget" zoo nkaus li ceev vim hais tias cov lus txib rov qab ua ntej qhov kev sau tshwm sim. Yog tias lub kaw lus poob ua ntej cov ntaub ntawv sau rau disk, nws yuav ploj thiab xaus rau hauv lub xeev tsis sib haum. Luckily, 64-ntsis MongoDB muaj kev nkag tau qhib.

Lub MMAPv1 thiab WiredTiger cia tshuab siv kev txiav txim siab los tiv thaiv qhov no, txawm hais tias WiredTiger tuaj yeem rov qab mus rau qhov kawg sib xws. tswj taw tes, yog tias kev kaw lus raug kaw.

Kev sau xov xwm xyuas kom meej tias cov ntaub ntawv khaws cia nyob rau hauv lub xeev zoo ib yam tom qab rov qab thiab khaws tag nrho cov ntaub ntawv kom txog thaum nws tau sau rau hauv lub cav. Qhov zaus ntawm cov ntaub ntawv kaw tau teeb tsa siv qhov parameter commitIntervalMs.

Txhawm rau kom paub tseeb tias cov ntawv nkag, xyuas kom nkag mus rau hauv cov ntaub ntawv teeb tsa (storage.journal.enabled), thiab qhov zaus ntawm kev kaw lus sib raug rau cov ntaub ntawv uas koj tuaj yeem them taus poob.

Kev txheeb xyuas yam tsis muaj qhov ntsuas

Thaum tshawb nrhiav thiab sib sau ua ke, feem ntau yuav tsum tau txheeb cov ntaub ntawv. Cia peb cia siab tias qhov no ua tiav ntawm ib qho ntawm cov theem kawg, tom qab lim cov txiaj ntsig txhawm rau txo cov ntaub ntawv raug txheeb xyuas. Thiab txawm nyob rau hauv cov ntaub ntawv no, rau sorting koj yuav xav tau Performance index. Koj tuaj yeem siv ib qho los yog qhov sib xyaw ua ke.

Yog tias tsis muaj qhov ntsuas tsim nyog, MongoDB yuav ua yam tsis muaj nws. Muaj lub cim xeeb txwv ntawm 32 MB ntawm tag nrho qhov loj ntawm tag nrho cov ntaub ntawv hauv kev ua haujlwm sorting, thiab yog MongoDB ncav cuag qhov kev txwv no, ces nws yuav pov ib qho yuam kev lossis rov qab los cov ntaub ntawv khoob.

Tshawb nrhiav yam tsis muaj kev txhawb nqa

Cov lus nug tshawb nrhiav ua haujlwm zoo ib yam li JOIN ua haujlwm hauv SQL. Txhawm rau ua haujlwm zoo tshaj plaws, lawv xav tau qhov ntsuas ntawm tus nqi ntawm tus yuam sij siv los ua tus yuam sij txawv teb chaws. Qhov no tsis pom tseeb vim tias kev siv tsis cuam tshuam rau hauv explain(). Xws li indices yog ntxiv rau cov index sau rau hauv explain(), uas nyob rau hauv lem yog siv los ntawm pipeline tswv $match и $sort, thaum lawv ntsib thaum pib ntawm lub raj xa dej. Indexs tam sim no tuaj yeem npog txhua theem aggregation pipeline.

Tshem tawm ntawm kev siv ntau qhov hloov tshiab

Txujci db.collection.update() siv los hloov ib feem ntawm cov ntaub ntawv uas twb muaj lawm lossis tag nrho cov ntaub ntawv, mus txog qhov kev hloov ua tiav, nyob ntawm seb koj tau teev tseg update. Dab tsi tsis pom tseeb yog tias nws yuav tsis ua txhua yam ntaub ntawv hauv kev sau tshwj tsis yog tias koj teeb tsa qhov kev xaiv multi los hloov kho tag nrho cov ntaub ntawv uas ua tau raws li qhov kev thov.

Tsis txhob hnov ​​​​qab qhov tseem ceeb ntawm qhov kev txiav txim ntawm cov yuam sij hauv lub rooj hash

Nyob rau hauv JSON, ib yam khoom muaj xws li ib tug unordered sau ntawm pes tsawg los yog ntau lub npe / tus nqi khub, qhov twg lub npe yog ib txoj hlua thiab tus nqi yog ib txoj hlua, tus lej, boolean, null, khoom, lossis array.

Hmoov tsis zoo, BSON muab ntau qhov tseem ceeb ntawm kev txiav txim thaum tshawb nrhiav. Hauv MongoDB, qhov kev txiav txim ntawm cov yuam sij hauv cov khoom tsim teeb meem, i.e. { firstname: "Phil", surname: "factor" } - qhov no tsis zoo ib yam li { { surname: "factor", firstname: "Phil" }. Ntawd yog, koj yuav tsum khaws qhov kev txiav txim ntawm lub npe / tus nqi khub hauv koj cov ntaub ntawv yog tias koj xav kom paub tseeb txog lawv.

Tsis txhob tsis meej pem "Null" и "tsis tau txhais"

nqi "tsis tau txhais" yeej tsis siv tau hauv JSON, raws li tus qauv JSON (ECMA-404 Tshooj 5), txawm tias nws siv hauv JavaScript. Ntxiv mus, rau BSON nws yog obsolete thiab hloov dua siab tshiab rau $null, uas tsis yog ib qho kev daws teeb meem zoo. Tsis txhob siv "tsis tau txhais" hauv MongoDB.

Siv $limit() tsis muaj $sort()

Feem ntau thaum koj tab tom txhim kho hauv MongoDB, nws muaj txiaj ntsig zoo kom pom cov qauv ntawm qhov tshwm sim uas yuav rov qab los ntawm cov lus nug lossis kev sib sau ua ke. Rau txoj haujlwm no koj yuav xav tau $limit(), tab sis nws yuav tsum tsis txhob nyob rau hauv qhov kawg code tshwj tsis yog tias koj siv nws ua ntej $sort. Tus kws kho tsheb no yog qhov tsim nyog vim tias tsis yog koj tsis tuaj yeem lav qhov kev txiav txim ntawm qhov tshwm sim, thiab koj yuav tsis tuaj yeem saib cov ntaub ntawv ntseeg tau. Nyob rau sab saum toj ntawm qhov tshwm sim koj yuav tau txais kev nkag sib txawv nyob ntawm qhov kev txheeb xyuas. Txhawm rau ua haujlwm kom ntseeg tau, cov lus nug thiab kev sib sau yuav tsum txiav txim siab, uas yog, tsim cov txiaj ntsig zoo ib yam txhua zaus lawv raug tua. Code uas muaj $limit(), tab sis tsis muaj $sort, yuav tsis txiav txim siab thiab tej zaum yuav ua rau qhov yuam kev uas yuav nyuaj rau taug qab.

xaus

Tib txoj kev uas yuav poob siab rau MongoDB yog los sib piv nws ncaj qha mus rau lwm hom ntaub ntawv, xws li DBMS, lossis los siv nws raws li qee qhov kev cia siab. Nws zoo li muab txiv kab ntxwv rau ib rab diav. Database systems ua haujlwm tshwj xeeb. Nws yog qhov zoo tshaj kom nkag siab thiab txaus siab rau qhov sib txawv no rau koj tus kheej. Nws yuav yog ib qho kev txaj muag los thawb MongoDB cov neeg tsim khoom hla txoj hauv kev uas yuam lawv mus rau txoj kev DBMS. Kuv xav pom cov tshiab thiab nthuav txoj hauv kev los daws cov teeb meem qub, xws li ua kom cov ntaub ntawv muaj kev ncaj ncees thiab tsim cov ntaub ntawv uas muaj zog tiv thaiv kev ua tsis tiav thiab kev tawm tsam tsis zoo.

MongoDB qhov kev qhia txog ACID kev hloov pauv hauv version 4.0 yog ib qho piv txwv zoo ntawm kev qhia txog kev txhim kho tseem ceeb hauv txoj hauv kev tshiab. Ntau cov ntaub ntawv thiab ntau nqe lus sib pauv tam sim no yog atomic. Nws kuj tseem tuaj yeem kho lub sijhawm xav tau kom tau txais cov xauv thiab txiav cov khoom lag luam daig, nrog rau kev hloov pauv qib kev sib cais.

14 yam uas kuv xav kom kuv paub ua ntej pib nrog MongoDB

Nyeem ntxiv:

Tau qhov twg los: www.hab.com

Ntxiv ib saib