Nangungunang Mga Tanong sa Panayam sa MongoDB

Nangungunang Mga Tanong Sa Panayam Sa Mongodb



Ang MongoDB ay isang open-source na NoSQL database management system; hindi lamang ito nagbibigay ng kadalian sa pag-iimbak ng hindi nakabalangkas na data ngunit pinamamahalaan din ito. Sa tuwing bumangon ang tanong kung paano pamahalaan ang milyun-milyong row ng hindi nakabalangkas na data, inirerekomenda ang MongoDB.

Ang unang bersyon ng MongoDB ay inilabas noong Pebrero 2007 ni 10 gen Ang kumpanya ng software, sa bandang huli noong 2013, binago ng 10gen ang pangalan ng kumpanya sa MongoDB Inc.

Ang MongoDB ay isang database ng NoSQL na ginagamit upang mag-imbak ng data sa form ng mga dokumento ng JSON dahil sa tampok na ito, ang napakalaking dami ng hindi nakabalangkas na data ay madaling maiimbak at mapamahalaan sa MongoDB. Ang hanay ng mga dokumentong ito na mayroong data ay kilala bilang mga koleksyon. At ang mga koleksyon na ito ay katulad ng mga talahanayan na ginagamit sa mga relational database upang mag-imbak ng data.







Maraming dahilan kung bakit sikat ang MongoDB kumpara sa ibang relational at NoSQL database, ang ilan sa mga ito ay:



  • Maaaring tukuyin ng mga developer ang istraktura ayon sa mga pares ng key-value
  • Tulad ng mga relational database, hindi kailangan ang mga row at column para sa data
  • Ang MongoDB structure hierarchical ay nagbibigay-daan upang mag-imbak ng data sa mga arrays form at maaari ding mag-imbak ng kumplikadong data
  • Ginagawa nitong madaling pamahalaan ng mga developer nito ang mga database dahil sinusuportahan nito ang maramihang mga programming language
  • Sinusuportahan din nito ang mga tampok ng gridFS at pagtitiklop

Dahil sa katanyagan nito, maraming pagkakataon sa trabaho para sa mga developer na nagtatrabaho sa MongoDB. Ang artikulong ito ay nauugnay sa mga tanong na pinakamahalaga at karaniwang itinatanong ng maraming nangungunang organisasyon.



Mga tanong sa panayam ng MongoDB

Ang mga pinakamadalas itanong ay nahahati sa tatlong antas: Basic level, Intermediate level, at Expert level.





Pangunahing Antas

Ang mga tanong na ito ay nauugnay sa mga pangunahing konsepto at terminolohiya ng MongoDB, at sa isang panayam, inaasahan na dapat sagutin ng bawat kandidato ang mga tanong na ito.

Tanong 1: ano ang alam Mo tungkol sa mga database ng NoSQL at ang kanilang mga uri?
Ang mga database ng NoSQL ay ang mga database na hindi nag-iimbak ng data sa mga talahanayan tulad ng ginagawa ng mga database ng SQL sa halip na nag-iimbak sila ng data sa iba pang mga form tulad ng mga dokumento at mga form ng key-value.



Mayroong apat na mahahalagang uri ng mga database ng NoSQL:

  • Mga database ng dokumento: Ang mga database na ito ay nag-iimbak ng data sa anyo ng mga dokumento ng JSON, ang mga dokumentong ito ay pinagsama upang bumuo ng mga koleksyon, at ang mga koleksyon na ito ay pinagsama upang bumuo ng isang database.
  • Mga database ng key-value: Ang mga database na ito ay nag-iimbak ng data sa anyo ng mga key-values, halimbawa, 'Name = John', sa halimbawang ito 'Name' ay susi, at 'John' ay value.
  • Tindahan ng malawak na hanay: Ang mga database na ito ay nag-iimbak ng data sa anyo ng mga dynamic na talahanayan, hindi katulad ng mga relational database, ang mga talahanayan na ito ay hindi nakabalangkas.
  • Mga database ng graph: Ang mga database na ito ay naglalaman ng mga gilid at node; Ang mga node ay ginagamit upang mag-imbak ng impormasyon samantalang ang mga gilid ay ginagamit upang ipakita ang mga relasyon sa pagitan ng mga node.

Tanong 2: anong uri ng database ng NoSQL na MongoDB?
Ang database ng MongoDB ay kabilang sa mga database ng dokumento, na nangangahulugang nag-iimbak ito ng data ayon sa mga dokumento ng JSON. Hindi ito sumusunod sa anumang schema at pinapayagan ang pagpasok ng anumang uri ng data dito.

Tanong 3: Alin ang mas mahusay sa mga database ng MongoDB at SQL?
Ang MongoDB ay mas mahusay kaysa sa mga database ng SQL sa paraang maaari nitong pangasiwaan ang hindi nakaayos na data samantalang ang mga database ng SQL ay pinangangasiwaan lamang ang nakabalangkas na data at iniimbak ito nang walang anumang paghihigpit hindi katulad sa mga relational na database. Dahil sa tampok nitong walang schema, mabilis na pinangangasiwaan ang mga query sa MongoDB kumpara sa mga database ng SQL dahil ang data ay hindi inilalagay sa anyo ng mga talahanayan at sa isang bilang ng mga talahanayan sa halip na iyon, ang data ay inilalagay sa parehong lugar kaya ito ay madali para sa query na ma-access ang data, at pinapayagan ng MongoDB ang data nito na ma-map sa iba pang mga programming language na nagbibigay ng kadalian para sa mga gumagamit nito na magtrabaho dito.

Tanong 4: Ano ang isang dokumento at koleksyon sa MongoDB?
Ang data ay naka-imbak sa MongoDB sa anyo ng mga dokumento, pagkatapos ang mga dokumentong ito ay pinagsama upang bumuo ng isang koleksyon, at ang isang bilang ng mga koleksyon ay pinagsama upang bumuo ng isang database. Upang maunawaan ito, isaalang-alang ang isang halimbawa ng isang database ng school_data, isang database ng school_data ay naglalaman ng mga koleksyon na mayroong classes_data sa mga ito, at higit pa, ang mga dokumentong ito (classes_data) ay naglalaman ng data ng mga mag-aaral (student_data) sa anyo ng mga dokumento.

Tanong 5: Ano ang mga uri ng data ng MongoDB?
Maraming uri ng data na sinusuportahan ng MongoDB:

String Ang uri ng data ng string ay nag-iimbak ng data sa anyo ng mga alphabets/ character at dapat itong 8 byte at kabilang sa UTF-8, halimbawa, Jone.
Integer Nag-iimbak ito ng mga numero hanggang 64 bit ngunit maaaring mag-iba ang laki depende sa server, halimbawa, 1,54.
Boolean Ito ay ginagamit upang mag-imbak ng mga halaga ng boolean na maaaring maging 0 o 1, halimbawa, si John ay nasa klase? Ang sagot nito ay oo o hindi.
Doble Nag-iimbak ito ng mga lumulutang na numero tulad ng 22.8.
Min/Max na mga key Ito ay ginagamit upang ihambing ang min at max na mga halaga.
Mga array Ito ay ginagamit upang mag-imbak ng mga array o maramihang mga halaga sa isang key.
Timestamp Kapag binago ang anumang dokumento, maaari nitong panatilihin ang mga talaan ng mga pagbabago.
Bagay Iniimbak nito ang mga naka-embed na dokumento
Wala Nag-iimbak ito ng mga null na halaga.
Simbolo Ito ang uri ng string at maaaring mag-imbak ng mga wikang iyon na nauugnay sa mga simbolo
Petsa Ang kasalukuyang oras at petsa ay maaaring maimbak sa mga uri ng data na ito
Object ID Ang mga dokumento ay may mga natatanging id, ang mga id na ito ay maaaring maimbak sa ganitong uri ng data
Binary data Ang binary data na kilala rin bilang machine language ay naka-imbak dito.
Code Ang mga Javascript code ay iniimbak sa mga dokumento sa tulong ng ganitong uri ng data
Regular na pagpapahayag Ang anumang expression ay maaaring maimbak sa ganitong uri ng data

Tanong 6: Ano ang mga alternatibo sa MongoDB?
Ang MongoDB ay isang uri ng database ng NoSQL, sa tulong kung saan naka-imbak ang malalaking distributed data sa mga dokumento ng BSON. Ang mga kahalili ng MongoDB ay maaaring Amazon DynamoDB, Microsoft Azure Cosmos DB, Couchbase, PostgreSQL, Redis, at Cassandra.

Intermediate Level

Ang mga tanong na ito ay higit na nauugnay sa mga advanced na konsepto kaysa sa mga pangunahing kaalaman at sa isang panayam, inaasahan na ang isang karaniwang kandidato ay dapat sagutin ang mga tanong na ito.

Tanong 7: Paano natin maihahambing ang MongoDB at SQL sa mataas na antas?
Ang mga database ng SQL ay mga relational database na nag-iimbak ng data sa isang mahusay na istruktura at organisadong paraan sa anyo ng mga hilera at haligi na gumagawa ng mga talahanayan, sa kabilang banda, ang mga database ng MongoDB ay ang mga database ng NoSQL, na nag-iimbak ng data sa mga dokumento, ang mga dokumentong ito ay sama-sama. kilala bilang mga koleksyon, at ang mga koleksyong ito ay pinagsama upang bumuo ng isang database.

Tanong 8: Mayroon bang anumang mga pag-andar tulad ng pamamahala ng transaksyon ng ACID at pag-lock sa MongoDB?
Hindi, bilang default, hindi nagbibigay ang MongoDB ng anumang transaksyon sa ACID sa maraming dokumento, gayunpaman, maaari itong magbigay ng suporta sa mga transaksyong ACID sa isang dokumento.

Tanong 9: Ano ang pag-index sa MongoDB?
Sa MongoDB, ang index ay isang espesyal na istraktura ng data na sumasakop sa ilang mga patlang ng database at nagtataglay ng ilang data upang makagawa ng isang index. Pinapabuti ng index ang kakayahang maghanap ng database, sa halip na maghanap ng isang partikular na bagay mula sa maraming mga dokumento, ang isang user ay maaaring direktang pumunta sa tinukoy na dokumento sa tulong ng pag-index.

{
Student_id = 1
Pangalan ng estudyante = 'Paul'
Bansa = 'Estados Unidos'
}

Sa halimbawa sa itaas, ang “Student_id =1” ay isang index, kaya kung sinuman ang maghahanap sa pamamagitan ng Student_id o 1, ang sumusunod na dokumento ay bubuksan.

Tanong 10: Sa MongoDB, Magagawa ba ang isang index sa isang array field?

Oo, maaari tayong lumikha ng index sa isang array field sa MongoDB, at ini-index nito ang bawat halaga ng array. Sa katunayan, ang MongoDB mismo ay lumilikha ng multikey index at hindi mo kailangang tukuyin ito kung ang anumang index field ay isang array.

Tanong 11: Posible bang magpatakbo ng maraming pagpapatakbo ng Javascript sa isang halimbawa ng MongoDB?
Posibleng magpatakbo ng maraming pagpapatakbo ng Javascript sa isang halimbawa ng mongod dahil sa 2.4 na bersyon ng MongoDB V8 javascript engine ay idinagdag.

Tanong 12: Ano ang journaling sa MongoDB?
Kapag pinagana ang journaling sa MongoDB, lumilikha ito ng subdirectory ng Journal, sa loob ng direktoryo ng /data/db , na siyang path na tinukoy ng dbPath, bilang default. Habang tumatakbo ang journaling, ine-edit at iniimbak ng MongoDB ang data sa memorya at sa disk, bago mailipat ang mga pagbabago sa data sa disk. Napakalaking tulong kung sakaling may anumang error na naganap dahil sa kung aling mga pagbabago sa data ang hindi nai-save, maaaring makuha ng MongoDB ang mga pagbabago mula sa Journal file at masisiguro ang tibay ng mga file.

Antas ng Dalubhasa

Ang mga tanong na ito ay nauugnay sa mas advanced na mga konsepto ng MongoDB, inaasahan na dapat sagutin ng isang kandidato sa kadalubhasaan ang mga tanong na ito.

Tanong 13: Ano ang proseso ng sharding ng MongoDB?
Sa MongoDB, ang sharding ay ang proseso ng pamamahagi ng data ng isang malaking database sa maraming mga server ng MongoDB. Kaya madaling pangasiwaan ang data at maaari ding tumugon sa mga query na may mataas na bilis. Sinusuportahan ng MongoDB ang horizontal scaling sa pamamagitan ng sharding.

Ang MongoDB cluster ay binubuo ng tatlong bahagi na mga tipak ; kilala rin ito bilang replica at available sa bawat server, mangga ; gumaganap sila bilang interpreter sa pagitan ng server at shard, at mga config server ; iniimbak nila ang mga setting ng pagsasaayos ng cluster at metadata.

Tanong 14: Ano ang scale-out at paano ito nangyayari sa MongoDB?
Kapag maraming data sa iisang node, ang maramihang node ay dinadala malapit sa load node, upang ipamahagi ang load nito. Ang prosesong ito ng pagbabahagi ng load ng isang node sa iba't ibang node ay tinatawag na scale-out at kilala rin bilang horizontal scaling.

Tanong 15: Paano tayo makakakuha ng impormasyon sa mga query plan sa pamamagitan ng paggamit ng MongoDB query language?
Ang ipaliwanag() Ang command ay ginagamit at sinusuportahan nito ang mga mode na 'allPlansExecution, executionStats, at queryPlanner'. Halimbawa:

db . mga restawran . ipaliwanag ( 'executionStats' ) . hanapin (
{ 'luto' : 1 , 'borough' : 'Brooklyn' }
) ;

Sa halimbawa sa itaas, ang data ng restaurant ay kinukuha mula sa explain() command.

Tanong 16: Ipaliwanag ang MongoDB Aggregation Framework.
Sa MongoDB, ang pagkuha ng data mula sa iba't ibang mga koleksyon at pagkatapos ng pagkalkula ay nagbabalik ng pinagsamang resulta na kilala bilang ang Pagsasama-sama. Mayroon itong tatlong hakbang, una, kukuha ito ng input at i-filter ang mga dokumento na kailangan namin mula sa mga dokumento gamit ang $match(), pagkatapos ay gagawin namin ang aggregation job sa na-filter na impormasyon gamit ang $group(), at sa wakas, inaayos namin ang aming mga resulta gamit ang $sort().

Tanong 17: Posible bang i-lock ang higit sa isang database gamit ang operasyon ng MongoDB?
Oo, maaaring i-lock ng MongoDB ang higit sa isang database, upang agad na mai-lock ang maraming database, ginagamit namin ang operasyon ng MongoDB db.copyDatabase() , samantalang ang operasyon, db.repairDatabase() maglapat ng pandaigdigang lock sa pag-edit ng database at paghigpitan din ang iba pang mga operasyong ipapatupad hanggang sa ito ay maalis.

Tanong 18: Ano ang GridFS sa MongoDB?
Ang malalaking file na lampas sa 16 MB tulad ng mga larawan, video file, at audio file ay pinamamahalaan sa MongoDB sa pamamagitan ng paggamit ng GridFS at iniimbak sa mga bahagi at tipak ng file sa halip na isang dokumento, bilang default ay sinusuportahan lamang ng MongoDB ang dalawang format na fs. mga file at fs.chunks upang mag-imbak ng mga chunks at metadata ng mga file.

Tanong 19: Paano mo mailalarawan ang replication phenomena sa MongoDB?
Ang pagtitiklop ay ang proseso ng pag-synchronize ng data sa maraming server, samantalang kinokopya ng MongoDB ang data at kinokopya ito sa iba't ibang server, kaya kung sakaling mag-crash ang server, maaaring makuha ang data mula sa alinmang server na nagsisiguro sa seguridad ng data.

Tanong 20: Ano ang Mongo Shell?
Ang mongo shell ay isang JavaScript platform, kung saan maaari tayong makipag-ugnayan sa MongoDB at maaari ring gumawa ng mga pagbabago sa data gamit ang mga query. Ginagamit din ito para sa mga layuning pang-administratibo tulad ng pagpapanatili ng mga instance ng database. Bilang default, ang mongo shell ay kasama sa file ng pag-install ngunit kung hindi ito naka-install, maaari mo itong i-install mula sa server ng MongoDB.

Konklusyon

Ang MongoDB ay isang tanyag na database ng NoSQL, na ginagamit upang pamahalaan ang data sa anyo ng mga dokumento at ito ay napakadaling pangasiwaan dahil ito ay walang schema. Ginagamit ito ng maraming kilalang kumpanya tulad ng Twitter at Facebook. Dahil sa katanyagan nito, maraming pagkakataon sa trabaho para sa mga developer na nagtatrabaho sa interface ng MongoDB. Sa artikulong ito, ang pinakamadalas itanong sa mga katanungan sa panayam ng MongoDB ay ibinahagi sa kanilang mga naaangkop na sagot.