Ihe 14 m chọrọ ka m mara tupu ịmalite MongoDB

A haziri nsụgharị nke isiokwu ahụ n'abalị nke mmalite nke ọmụmụ ahụ "Ọdụ data na-abụghị mmekọrịta".

Ihe 14 m chọrọ ka m mara tupu ịmalite MongoDB

Isi ihe:

  • Ọ dị oke mkpa ịzụlite schema n'agbanyeghị na ọ bụ nhọrọ na MongoDB.
  • N'otu aka ahụ, ndenye aha ga-adabarịrị na atụmatụ gị na usoro ịnweta.
  • Zere iji nnukwu ihe na nnukwu arrays.
  • Kpachara anya na ntọala MongoDB, ọkachasị ma a bịa na nchekwa na ntụkwasị obi.
  • MongoDB enweghị njikarịcha ajụjụ, yabụ ị ga-akpachara anya mgbe ị na-arụ ọrụ ajụjụ.

Ejirila m ọdụ data na-arụ ọrụ ruo ogologo oge, mana achọpụtara m MongoDB na nso nso a. Enwere ihe ole na ole m chọrọ ka m mara tupu m malite ịrụ ọrụ na ya. Mgbe mmadụ enweela ahụmahụ n'otu mpaghara, ha nwere echiche buru ụzọ banyere ihe ọdụ data bụ na ihe ha na-eme. N'olileanya nke ime ka ọ dịrị ndị ọzọ mfe nghọta, m na-ewepụta ndepụta nke mmejọ nkịtị.

Ịmepụta sava MongoDB na-enweghị nyocha

Ọ dị nwute, arụnyere MongoDB na-enweghị nkwenye na ndabara. Maka ụlọ ọrụ a na-enweta na mpaghara, omume a bụ ihe nkịtị. Ma ebe ọ bụ na MongoDB bụ usoro ọtụtụ ndị ọrụ na-enwe mmasị iji nnukwu ebe nchekwa, ọ ga-aka mma ma ọ bụrụ na itinye ya na ihe nkesa nwere RAM dị ka o kwere mee, ọbụlagodi na ị ga-eji ya maka mmepe. Ịwụnye na ihe nkesa site na ọdụ ụgbọ mmiri ndabara nwere ike ịbụ nsogbu, karịsịa ma ọ bụrụ na koodu Javascript ọ bụla nwere ike igbu na arịrịọ (dịka ọmụmaatụ, $where dị ka echiche maka ogwu ogbugba).

Enwere ụzọ nyocha dị iche iche, mana nke kachasị mfe bụ ịtọ ID/paswọdu onye ọrụ. Jiri echiche a ka ị na-eche maka njirimara mara mma dabere na LDAP. Mgbe a bịara na nchekwa, MongoDB kwesịrị ka emelite ya mgbe niile, yana a ga-enyocha ndekọ mgbe niile maka ohere na-enweghị ikike. Dịka ọmụmaatụ, ọ na-amasị m ịhọrọ ọdụ ụgbọ mmiri dị iche ka ọdụ ụgbọ mmiri ndabara.

Echefula ijikọ elu ọgụ gị na MongoDB

Ndepụta nchekwa MongoDB nwere ndụmọdụ dị mma maka ibelata ihe ize ndụ nke ntinye netwọkụ na ntapu data. Ọ dị mfe ikpochapụ ya wee kwuo na ihe nkesa mmepe anaghị achọ nchekwa dị elu. Agbanyeghị, ọ bụghị nke ahụ dị mfe yana nke a metụtara sava MongoDB niile. Karịsịa, ọ bụrụ na ọ nweghị ihe na-akpali akpali iji mapReduce, group ma ọ bụ $ebe, ịkwesịrị gbanyụọ iji koodu aka ike na Javascript site na ide na faịlụ nhazi javascriptEnabled:false. Ebe ọ bụ na faịlụ data adịghị ezoro ezo na MongoDB ọkọlọtọ, ọ bụ ihe ezi uche dị na ya iji MongoDB na-agba ọsọ Onye ọrụ raara onwe ya nye, nke nwere ohere zuru oke na faịlụ, na-enwe oke ohere na ya yana ikike iji njikwa ịnweta faịlụ nke sistemụ arụmọrụ nke ya.

Njehie mgbe ị na-emepụta sekit

MongoDB anaghị eji schema. Mana nke a apụtaghị na atụmatụ ahụ adịghị mkpa. Ọ bụrụ na ịchọrọ ịchekwa akwụkwọ na-enweghị ụkpụrụ ọ bụla na-agbanwe agbanwe, ịchekwa ha nwere ike ịdị ngwa ma dị mfe, mana iweghachi ha ma emechaa nwere ike isi ike. njo ike.

Ederede kpochapụwo"Iwu 6 nke mkpịsị aka maka MongoDB Schema Design" Ọ bara uru ịgụ, yana njirimara ndị dị ka Explorer Schema na ngwaọrụ ndị ọzọ Studio 3T, ọ bara uru iji maka nlele sekit mgbe niile.

Echefula ụdị usoro ahụ

Ịchefu ụdị usoro nwere ike ịkpata nkụda mmụọ na igbu oge karịa nhazi ọ bụla ọzọ na-ezighi ezi. Site na ndabara MongoBD na-eji ọnụọgụ abụọ ụdị. Mana o yighị ka ọ ga-abara onye ọ bụla uru. A na-ahụta ihe na-enwe mmetụta, ụda olu nwere mmetụta, ụdị ọnụọgụ abụọ dị ka ihe anachronism na-achọ ịmata ihe yana beads, caftans na afụ ọnụ curly laa azụ na 80s nke narị afọ gara aga. Ugbu a ojiji ha enweghị mgbaghara. Na ndụ n'ezie, "moto ọgba tum tum" bụ otu ihe ahụ "Motocycle". Na "Britain" na "Britain" bụ otu ebe. Obere mkpụrụedemede bụ naanị mkpụrụedemede ukwu dabara na mkpụrụedemede ukwu. Emekwala ka m malite ịhazi ụda olu. Mgbe ị na-eke nchekwa data na MongoDB, jiri mkpokọta na-enweghị mmetụta na debanye aha, nke kwekọrọ na asụsụ na omenala onye ọrụ usoro. Nke a ga-eme ka ịchọta data eriri dị mfe karị.

Mepụta mkpokọta nwere nnukwu akwụkwọ

MongoDB nwere obi ụtọ ịnabata nnukwu akwụkwọ ruru 16MB na mkpokọta, yana GridFS Ezubere maka nnukwu akwụkwọ buru ibu karịa 16 MB. Mana naanị n'ihi na enwere ike idobe akwụkwọ buru ibu n'ebe ahụ, ịchekwa ha ebe ahụ abụghị ezigbo echiche. MongoDB ga-arụ ọrụ kacha mma ma ọ bụrụ na ị na-echekwa akwụkwọ n'otu n'otu nke dị kilobytes ole na ole n'ogo, na-emeso ha dị ka ahịrị na tebụl SQL sara mbara. Akwụkwọ buru ibu ga-abụ isi iyi nke nsogbu na mmepụta ihe.

Ịmepụta akwụkwọ nwere nnukwu usoro

Akwụkwọ nwere ike ịnwe nhazi. Ọ kacha mma ma ọ bụrụ na ọnụ ọgụgụ nke ihe dị n'usoro dị anya site na ọnụọgụ ọnụọgụ anọ. Ọ bụrụ na agbakwunyere ihe n'usoro ugboro ugboro, ọ ga-eto akwụkwọ nwere ya, ọ ga-adịkwa mkpa ka ọ bụrụ megharia, nke pụtara na ọ ga-adị mkpa melite index kwa. Mgbe a na-edegharịgharị akwụkwọ nwere nnukwu n'usoro, a na-edegharịkarị ndepụta ndeksi, ebe ọ bụ na enwere ndekọ, nke na-echekwa ndeksi ya. Ndozigharị ndegharị a na-emekwa mgbe etinyere ma ọ bụ ehichapụ akwụkwọ.

MongoDB nwere ihe a na-akpọ "ihe njuputa", nke na-enye ohere maka akwụkwọ na-eto eto iji belata nsogbu a.
Ị nwere ike iche na ị nwere ike ime na-enweghị nhazi nhazi. N'ụzọ dị mwute, enweghị index nwere ike ime ka ị nwee nsogbu ndị ọzọ. Ebe ọ bụ na a na-enyocha akwụkwọ site na mmalite ruo n'isi, ịchọ ihe na njedebe nke nhazi ahụ ga-ewe ogologo oge, ọtụtụ ọrụ ndị metụtara akwụkwọ dị otú ahụ ga-abụkwa. nwayo.

Echefula na usoro nke nkebi na nchịkọta dị mkpa

N'ime sistemụ nchekwa data nwere ngwa ngwa ajụjụ, ajụjụ ndị ị na-ede bụ nkọwa nke ihe ịchọrọ inweta, ọ bụghị otu esi enweta ya. Usoro a na-arụ ọrụ site na ntụnyere na ịtụ n'ụlọ nri: ị na-enyekarị nri naanị, ma enyeghị onye na-esi nri ntụziaka zuru ezu.

Na MongoDB, ị na-akụziri onye osi nri. Dịka ọmụmaatụ, ịkwesịrị ijide n'aka na data ahụ gafere reduce ozugbo enwere ike na pipeline na-eji $match и $project, na nhazi na-eme naanị mgbe e mesịrị reduce, na na ọchụchọ na-eme kpọmkwem n'usoro ị chọrọ. Inwe njikarịcha ajụjụ nke na-ewepụ ọrụ na-adịghị mkpa, na-ahazi usoro nke ọma, na họrọ ụdị njikọ nwere ike imebi gị. Site na MongoDB, ị nwere njikwa karịa na ọnụ ahịa ịdị mma.

Ngwa dị ka Studio 3T ga-eme ka owuwu nke mkpokọta ajụjụ dị mfe MongoDB. Njirimara nchịkọta akụkọ nchịkọta na-enye gị ohere itinye nkwupụta pipeline n'otu oge n'otu oge, wee nyochaa ntinye na ntinye data na ọkwa ọ bụla maka nbibi dị mfe.

Iji Ndenye ndekọ

Edokwala nhọrọ ederede MongoDB ka ọ nwee oke ọsọ mana ntụkwasị obi dị ala. Nke a mode "faịlụ-na-echefu" ọ dị ka ngwa ngwa n'ihi na eweghachiri iwu ahụ tupu ederede emee. Ọ bụrụ na usoro ahụ daa tupu edee data na diski, ọ ga-efunahụ ya wee kwụsị na ọnọdụ na-ekwekọghị ekwekọ. Ọ dabara nke ọma, MongoDB 64-bit agbanyerela osisi.

Igwe nchekwa MMAPv1 na WiredTiger na-eji ịde osisi iji gbochie nke a, n'agbanyeghị na WiredTiger nwere ike ịgbake ruo ogologo oge. akara akara, ọ bụrụ na-enweghi ike igbu osisi.

Ịdekọ akụkọ na-eme ka nchekwa data dị na ọnọdụ na-agbanwe agbanwe mgbe mgbake ma na-ejigide data niile ruo mgbe edere ya na akwụkwọ akụkọ. A na-ahazi ugboro nke ndekọ site na iji paramita commitIntervalMs.

Iji jide n'aka na ndenye ndị a, jide n'aka na etinyere ndekọ na faịlụ nhazi (storage.journal.enabled), na ugboro nke ndekọ kwekọrọ na ego ozi ị nwere ike imeli ida.

Na-ahazi na-enweghị index

Mgbe ị na-achọ ma na-achịkọta, a na-enwekarị mkpa ịhazi data. Ka anyị nwee olile anya na a ga-eme nke a n'otu n'ime usoro ikpeazụ, mgbe nyochachara nsonaazụ iji belata ọnụọgụ data a na-ahazi. Na ọbụna na nke a, maka nhazi ị ga-achọ ndeksi. Ị nwere ike iji otu index ma ọ bụ ngwakọta.

Ọ bụrụ na enweghị ndeksi dabara adaba, MongoDB ga-eme na-enweghị ya. Enwere oke ebe nchekwa nke 32 MB na mkpokọta akwụkwọ niile dị na ya nhazi ọrụ, ma ọ bụrụ na MongoDB ruru oke a, mgbe ahụ ọ ga-atụfu njehie ma ọ bụ laghachi ihe ndekọ efu.

Chọọ na-enweghị nkwado index

Ajụjụ ọchụchọ na-arụ ọrụ yiri ọrụ JOIN na SQL. Iji rụọ ọrụ nke ọma, ha chọrọ ndepụta nke uru igodo eji dị ka igodo mba ọzọ. Nke a abụghị ihe doro anya n'ihi na ejighị ya egosipụta explain(). Indices dị otú ahụ bụ mgbakwunye na ndeksi edere na ya explain(), nke n'aka nke ya na-eji ndị ọrụ pipeline eme ihe $match и $sort, mgbe ha zutere na mmalite nke pipeline. Index nwere ike ikpuchi ọkwa ọ bụla ugbu a nchịkọta pipeline.

Ịpụ na iji ọtụtụ mmelite

.Zọ db.collection.update() eji agbanwe akụkụ nke akwụkwọ dị adị ma ọ bụ akwụkwọ niile, ruo ngbanwe zuru oke, dabere na oke ị kọwapụtara. update. Ihe na-apụtachaghị ìhè bụ na ọ gaghị ahazi akwụkwọ niile dị na mkpokọta ma ọ bụrụ na ịtọghị nhọrọ ahụ multi imelite akwụkwọ niile na-emezu ụkpụrụ arịrịọ.

Echefula mkpa nke usoro igodo dị na tebụl hash

Na JSON, ihe nwere mkpokọta efu efu ma ọ bụ karịa aha/uru ụzọ, ebe aha bụ eriri na uru bụ eriri, nọmba, boolean, efu, ihe ma ọ bụ nhazi.

N'ụzọ dị mwute, BSON na-etinye aka na usoro mgbe ọ na-achọ. Na MongoDB, usoro igodo n'ime ihe arụnyere ihe, i.e. { firstname: "Phil", surname: "factor" } - nke a abụghị otu ihe ahụ { { surname: "factor", firstname: "Phil" }. Ya bụ, ị ga-echekwarịrị usoro aha/ọnụ ahịa ụzọ n'ime akwụkwọ gị ma ọ bụrụ na ịchọrọ ijide n'aka na ịchọta ha.

Unu enwela mgbagwoju anya "Efu" и "enweghị nkọwa"

uru "enweghị nkọwa" adịchaghị irè na JSON, dịka si kwuo ọkọlọtọ ọkọlọtọ JSON (ECMA-404 Nkeji 5), n'agbanyeghị na ejiri ya na Javascript. Ọzọkwa, maka BSON ọ bụ ihe ochie ma gbanwee ya $null, nke na-abụghị mgbe niile ihe ngwọta dị mma. Zere iji "enweghị nkọwa" na MongoDB.

Jiri $limit() enweghị $sort()

Ọtụtụ mgbe mgbe ị na-emepe emepe na MongoDB, ọ bara uru ịhụ nlere anya nsonaazụ nke a ga-eweghachi na ajụjụ ma ọ bụ mkpokọta. Maka ọrụ a ị ga-achọ $limit(), ma ọ dịghị mgbe ọ ga-adị na ikpeazụ koodu ọ gwụla ma i jiri ya mbụ $sort. Makaniiki a dị mkpa n'ihi na ma ọ bụghị ya, ị nweghị ike ịkwado usoro nsonaazụ ya, ị gaghị enwe ike ịlele data ahụ kpamkpam. N'elu nsonaazụ ị ga-enweta ntinye dị iche iche dabere na nhazi. Iji rụọ ọrụ ntụkwasị obi, ajụjụ na mkpokọta ga-abụrịrị mkpebi siri ike, ya bụ, rụpụta otu nsonaazụ ahụ oge ọ bụla e gburu ha. Koodu nwere $limit(), ma mba $sort, agaghị ekpebisi ike ma nwee ike mechaa mee ka njehie ga-esi ike ịchọta.

nkwubi

Nanị ụzọ ị ga-esi nwee nkụda mmụọ na MongoDB bụ iji ya tụnyere ya na ụdị nchekwa data ọzọ, dị ka DBMS, ma ọ bụ ịbịa na ojiji ya dabere na ụfọdụ atụmanya. Ọ dị ka iji oroma atụnyere ndụdụ. Sistemụ nchekwa data na-arụ ebumnuche ụfọdụ. Ọ kacha mma naanị ịghọta na ịghọta ọdịiche ndị a n'onwe gị. Ọ ga-abụ ihe ihere ịmanye ndị mmepe MongoDB maka ụzọ nke manyere ha n'ụzọ DBMS. Achọrọ m ịhụ ụzọ ọhụrụ na nke na-adọrọ mmasị iji dozie nsogbu ochie, dị ka ijide n'aka iguzosi ike n'ezi ihe data na ịmepụta usoro data nke na-eguzogide ọdịda na mwakpo obi ọjọọ.

Mwebata MongoDB nke ACID azụmahịa na ụdị 4.0 bụ ezigbo ihe atụ nke iwebata nkwalite dị mkpa n'ụzọ ọhụrụ. Azụmahịa ọtụtụ akwụkwọ na ọtụtụ nkwupụta bụzi atomic. Ọ ga-ekwe omume ịhazi oge achọrọ iji nweta mkpọchi na ịkwụsị azụmahịa rapaara, yana ịgbanwe ọkwa dịpụrụ adịpụ.

Ihe 14 m chọrọ ka m mara tupu ịmalite MongoDB

GỤKWUO:

isi: www.habr.com

Tinye a comment