Maitiro ekuita mibvunzo muMongoDB
MongoDB ndiyo dhatabhesi Yemahara uye yakavhurika-sosi application inoshandisa gwaro chimiro kuchengetedza uye kuronga ruzivo. Isarudzo yakakurumbira munyika yekuvandudza webhu nekuda kwekusagadzikana kwayo uye kuchinjika. Mibvunzo inobvumidza iwe kutsvaga chaiyo data mukati memuunganidzwa wemagwaro. Muchinyorwa chino, tichaongorora nzira dzakasiyana dzekuita mibvunzo muMongoDB uye kuti tingawana sei zvakanyanya kubva pane ichi chine simba chekutsvaga chishandiso.
Mhando dzemibvunzo muMongoDB
MongoDB inopa dzakasiyana siyana nzira dzekuita mibvunzo pane yako dhatabhesi. madhatabhesi. Mubvunzo wekutanga ndiko kutsvaga magwaro anoenderana neseti yemaitiro chaiwo. Kuti uite izvi, nzira inoshandiswa tsvaga () pamwe chete nechinhu chemubvunzo chine maparamita ekutsvaga. Iri basa rinodzosa cursor, iyo inogona kudzokororwa kuburikidza kuti uwane mhinduro yemubvunzo.
Kutsvaga nevashandisi vane musoro
Pamusoro pemubvunzo wekutanga, MongoDB inopa vane musoro vanoshanda vanokutendera kuti uite tsvakiridzo yepamusoro. Vanoshandisa zvine musoro vakaita se $uye, $kana y $kwete inogona kusanganiswa kugadzira mibvunzo yakaoma inosanganisira akawanda mamiriro. Semuenzaniso, tinogona kutsvaga zvinyorwa zvinosangana nemaitiro maviri tichishandisa mushandisi $uyeKuti uite izvi, unofanirwa kutsanangura chinhu chine mamiriro ega ega mukati memushandisi mumubvunzo.
Kukurukurirana nekufungidzira
MongoDB inokutendera kuti umhanye mibvunzo ine mafungidziro ekudzikamisa minda yakadzoserwa mumhedzisiro. Izvi zvinowanikwa nekushandisa nzira chirongwa () kana nekudoma kuti ndedzipi minda yekusanganisa kana kusabvisa mumubvunzo. Iyi ficha inobatsira kana ichingodiwa chikamu chidiki chegwaro, kuderedza saizi yekupindura uye nekumhanyisa kuita kwemubvunzo.
Ronga uye ganhurira mhinduro
Muzviitiko zvakawanda, zvinokosha kurongeka kana muganhu mhedzisiro yemubvunzo muMongoDB. Kuti aite izvi, unogona kushandisa nzira rudzi () y muganhu (). Iyo nzira rudzi () inokutendera kuti uronge zvawanikwa zvichibva pane imwe kana akawanda minda, uku muganhu () Deredza nhamba yemagwaro akadzorerwa. Aya maficha anobatsira kuronga nekudzora huwandu hweruzivo rwakadzoserwa, zvichipa mhedzisiro yakakosha uye inoshanda.
Kuziva maitiro ekumhanyisa mibvunzo muMongoDB kwakakosha kutora mukana wakakwana weiyi database inogona. Uchishandisa sarudzo dzakasiyana dzemubvunzo, unogona kutsvaga chaiyo data, kuvaka yakaoma mibvunzo, uye kumisa mibairo kuti uwedzere kuita. Nekudzidzira uye nekunzwisisa kweakasiyana nzira nevashandisi, iwe unozokwanisa kumhanyisa mibvunzo uye kuwana ruzivo rwaunoda nekukurumidza uye nemazvo.
-Kusuma kumibvunzo muMongoDB
MongoDB inzvimbo yakanyanya scalable uye inochinjika yeNoSQL dhatabhesi iyo inokutendera iwe kuchengetedza yakawanda data. Imwe yeMongoDB ine simba kwazvo maficha kugona kwayo kuita mibvunzo yepamusoro. zvinobudiriraKuburikidza nemibvunzo iyi, vanogadzira vanogona kuwana chaiyo data kubva kudhatabhesi zvichienderana nezvavanoda.
Mibvunzo muMongoDB inoitwa pachishandiswa Structured Query Mutauro (SQL) uye inonzi "query syntax queries." Iyi mibvunzo inotsanangurwa semagwaro eJSON uye inotumirwa kune database. MongoDB data pakuurayiwa. Mibvunzo inogona kusanganisira mamiriro, fungidziro, mhando, uye zvipingaidzo kusefa uye kushandisa data nemazvo.
Chinhu chakakosha chekubvunza muMongoDB kugona kushandisa indexes kuvandudza kuita kwemubvunzo. Indexes muMongoDB zvimiro zvedata zvinochengeta subset yedata muunganidzwa mune yakagadziridzwa fomati kuti ikurumidze kubvunza. Indexes inogona kugadzirwa pane imwe kana akawanda minda muunganidzwa uye nekuchimbidza kuwana data nekudzikisa huwandu hwemagwaro anoda kuongororwa panguva yekubvunza. Kuti utore mukana wakazara wekushanda uku, zvakakosha kugadzira uye kushandisa ma indexes akakodzera kune yega yega mamiriro ekushandisa.
-Basic syntax yemibvunzo
Kana tave nedhatabhesi redu uye kuunganidzwa kwakagadzirwa muMongoDB, danho rinotevera nderekudzidza maitiro ekuita mibvunzo. MongoDB inoshandisa yayo yemubvunzo mutauro unonzi Query Mutauro (QL). NeQL, tinogona kumhanyisa mibvunzo yakaoma nyore uye nemazvo.
Iyo yekutanga syntax yekubvunza muMongoDB ndeye kushandisa nzira db.collection.find(). Iyi nzira inotibvumira kutsvaga zvinyorwa mukati memuunganidzwa anozadzisa zvimwe zvinodiwa. Kutsanangura maitiro ekutsvaga, tinoshandisa chinhu cheJSON senharo kune nzira yekutsvaga.
Kana tave nemubvunzo wedu wagadzirwa, tinogona kushandisa vashandisi vakasiyana kukwenenzvera mhedzisiro. MongoDB inopa akasiyana siyana evashandisi, achitibvumira kugadzira yakanyatsojeka uye yakadzama mibvunzo. Vamwe vevanonyanya kushandisa ndeiyi:
- $eq: kutarisa kana kukosha kwemunda kwakaenzana nehumwe hunokosha hwakatarwa.
- $ne: kutarisa kana munda unokosha hauna kuenzana nehumwe hunokosha hunotsanangurwa.
- $gt: kutarisa kana kukosha kwemunda kwakakura kupfuura imwe kukosha kwataurwa.
- $lt: kutarisa kana kukosha kwemunda kuri kushoma pane imwe kukosha yakataurwa.
Izvi ndizvo chete mimwe mienzaniso yevashandisi varipo muMongoDB. Pamusoro peizvi, kune akawanda akawanda anoshanda anotitendera kuti tiite mibvunzo yakaoma. Nekubatanidza vashandisi nemaitiro ekutsvaga, tinogona kuwana chaiyo uye yakasefa mhedzisiro kubva kune yedu database.
-Kushandisa kuenzanisa uye zvine musoro vashandisi mumibvunzo
MuMongoDB, kushandiswa kwe kuenzanisa uye vane musoro vanoshanda mumibvunzo inotibvumira kuita tsvakiridzo dzepamusoro uye chaidzo mukuunganidza kwedu data. Mashandisirwo aya anoshandiswa kusefa magwaro anozadzisa mamwe mamiriro. Nekuzvibatanidza nenzira kwayo, tinogona kuwana mibairo yakananga uye yakakodzera.
Iyo kufananidzira vanoshanda muMongoDB inosanganisira $eq kuenzana, $ne nekuda kwekusaenzana, $gt kune mukuru pane, $gte mukuru kune kana kuenzana na, $lt zvishoma pane uye $lte zvishoma pane kana kuenzana ne. Aya maopareta anoshandiswa kuenzanisa manhamba, tambo dzemavara, uye mamwe marudzi e data mumagwaro edu. Semuenzaniso, tinogona kutsvaga magwaro ese ane "zera" ndima yakakura kupfuura kana yakaenzana ne18 tichishandisa mushandisi $gte.
Iyo vashandisi vane pfungwa muMongoDB vanosanganisira $uye, $kana y $kwete. Aya maopareta anoshandiswa kubatanidza akawanda mamiriro mumubvunzo. Mushandisi $uye inokubvumira kuti uwane zvinyorwa zvinosangana panguva imwe chete nemamiriro ezvinhu akati wandei, nepo opareta $kana inowana magwaro anosangana neinenge imwe yemamiriro ezvinhu. Kune rumwe rutivi, mushandisi $kwete Inoshandiswa kuregeredza mamiriro, ndiko kuti, kuwana magwaro asina kusangana nawo. Nekushandisa aya anoshanda ane musoro, tinogona kuvaka mibvunzo yakaoma uye inoshanduka muMongoDB.
-Kubvunza uchishandisa zvinogara zvichitaurwa
MongoDB dhatabhesi reNoSQL rinobvumira kuvhurika kubvunza uchishandisa nguva dzose mataurirwo. Matauriro enguva dzose ndiwo maitiro ezvinyorwa anoshandiswa kutsvaga tambo mukati meimwe nzvimbo muunganidzwa wezvinyorwa. Iyi mibvunzo inogona kubatsira zvakanyanya kana iwe uchida kutsvaga ruzivo kubva pane chaiyo pateni, senge nhamba yefoni, email kero, kana kodhi yepositi. MuMongoDB, mataurirwo enguva dzose anoshandiswa pamwe chete ne `$ regex` opareta, izvo zvinokutendera kutsvaga machisi mukati memunda.
Semuenzaniso, ngatiti tine muunganidzwa wemagwaro ane ruzivo rwevatengi. Kana tichida kuwana vatengi vese vane zita rinotanga nebhii "J", tinogona kushandisa chirevo chenguva dzose `/^J/`. Izvi zvichatsvaga magwaro ese ane "zita" munda unotanga netsamba "J". Neimwe nzira, tinogona kuwana vatengi vese vane mazita ane hunhu hwakateedzana "vari" mune chero chinzvimbo vachishandisa yakajairika kutaura `/ are/`.
Pamusoro pekuita kwekutanga kutsvaga, MongoDB zvakare inobvumidza iwe kusanganisa mataurirwo enguva dzose nevamwe vashandisi kuti uite mibvunzo yakaoma. Semuenzaniso, tinokwanisa kuita mubvunzo unowana vatengi vese vane zita rinotanga nevara "J" uye vane nhamba dzenhare dzine kutevedzana kwedijiti "123". Kuti tiite izvi, tinogona kushandisa `$ uye` mushandisi pamwe chete nemataurirwo anoenderana. Muchiitiko ichi, mubvunzo ungave wakafanana neichi: `{$uye: [ {zita: {$regex: /^J/ }}, {runhare: {$regex: /123/}}] }`.
-Kushandisa indexes kuvandudza kuita kwemubvunzo
Pane akati wandei matekiniki anogona kushandiswa kuvandudza mashandiro emubvunzo muMongoDB, imwe yacho kushandiswa kwema indexes. Indexes muMongoDB zvimiro zvedata zvinovandudza mashandiro emibvunzo nekubvumira kukurumidza kuwana ruzivo rwakachengetwa mudhatabhesi. Nekushandisa indexes nemazvo, Zvinogona kuwanikwa kuti mibvunzo inoshanda zvakanyanya uye nguva yavo yekupindura yakaderedzwa.
Kuti ushandise indexes muMongoDB, unofanira kutanga wagadzira index pane muunganidzwa waunoda kuisa index. MongoDB inopa akati wandei ma indexes, anosanganisira single-field indexes, composite indexes, uye geospatial indexes. Rudzi rweindex yekushandisa zvinoenderana nemhando yedata uye rudzi rwemubvunzo waunoda kuita. Kana iyo index yagadzirwa, MongoDB inozoishandisa otomatiki kuvandudza mashandiro emibvunzo inowana muunganidzwa.
Izvo zvakakosha kuti uzive kuti nepo ma indexes achivandudza mashandiro emubvunzo, anokanganisawo kuita kwekunyora mashandiro. Izvi zvinodaro nekuti pese panoitwa oparesheni yekunyora inobata kune gwaro indexed, MongoDB inofanira kuvandudza indekisi dzinoenderana. Naizvozvo, zvinodikanwa kuwana chiyero pakati pekuita kwemubvunzo uye kuita kwekunyora. Mune zvimwe zviitiko, zvingave zvakafanira kugadzirisa kune yako indexing zano kuti uwane yakakwana dhatabhesi kuita.
-Nested mibvunzo uye kuunganidza mashandiro muMongoDB
MongoDB dhatabhesi reNoSQL rinobvumira kubvunza kwakanaka uye kuchinjika. Imwe yeMongoDB ine simba kwazvo maficha ndeye yayo mibvunzo yakasununguka, iyo inokubvumira kutsvaga zvinyorwa zvine zvinhu mukati mezvimwe zvinhu. Izvi zvinonyanya kubatsira kana uchishanda nedata rakaomarara uye uchida kumhanyisa mimwe mibvunzo.
Kuita mubvunzo wakagara muMongoDB, tinoshandisa dot operator («.») kuwana nzvimbo dzemukati dzegwaro. Semuyenzaniso, kana tine muunganidzwa magwaro mutengi uye gwaro rimwe nerimwe rine «kero» munda, iyo zvakare ine minda kufanana «mugwagwa», «guta», uye «nyika», tinogona kuita mibvunzo kuwana vatengi vose vanogara mune rimwe guta kana nyika.
Pamusoro pemibvunzo inested, MongoDB inopawo kuunganidza mabasa izvo zvinotitendera kuti tiite zviverengero zvakaoma pane data redu. Mashandiro aya anotibvumira kuita mabasa akadai sekupfupikisa, kuverenga, kuenzana, kana kuwana huwandu hwepamusoro kana hudiki hunokosha hwenzvimbo yakati mukuunganidzwa kwemagwaro edu.
Aggregation mashandiro muMongoDB anoitwa kuburikidza nepombi, inova inotevedzana yematanho apo imwe neimwe nhanho inoita shanduko pamagwaro. Tinogona kushandisa nhanho dzakasiyana mupombi, senge $match kusefa magwaro atinoda kuisa mumubvunzo, $group kuboka magwaro zvichienderana nechirongwa, $project yekusarudza minda yatinoda kuratidza mune zvabuda, pakati pezvimwe. Aya mavhisi ekubatanidza anotipa shanduko huru yekuita masvomhu uye ongororo yepamusoro pane yedu data yakachengetwa muMongoDB.
-Kurudziro yekugadzirisa mibvunzo muMongoDB
Kukwirisa mibvunzo muMongoDB, zvakakosha kutevedzera mamwe mazano. Chokutanga pane zvose, zvinokurudzirwa gadzira indexes dzakakodzera kune miunganidzwa inozobvunzwa kazhinji. Ma indexes muMongoDB anobatsira kukurumidza kutorwa kwedata nekubvumira injini yedatabase kutsvaga ruzivo zvakanyanya. Kuti uite izvi, ongorora mibvunzo ichange ichiitwa kakawanda uye gadzira indexes paminda inoshandiswa mumibvunzo iyoyo.
Imwe kurudziro huru ndeiyi kuderedza minda yakadzorerwa mumibvunzo. Paunomhanyisa mubvunzo muMongoDB, unogona kutsanangura kuti ndeapi minda yaunoda kudzorera. Zvakakosha kudzosa minda inodiwa chete kuti uderedze saizi yegwaro uye kugadzirisa mashandiro emubvunzo. Zvinogona kuitwa uchishandisa fungidziro muMongoDB, ichiratidza minda inodiwa munzira find().
Chekupedzisira, kurudziro yakakosha ndeye shandisa aggregation pachinzvimbo chemibvunzo yakawanda pazvinobvira. Aggregation muMongoDB inokutendera kuti ubatanidze akawanda query mashandiro kuita imwechete uye inopa kushanda kwepamusoro. Izvi zvinonyanya kubatsira kana uchiita maoparesheni akadai sekusefa, kuisa mumapoka, uye kuverenga nhamba dzedata. Nekushandisa aggregation, iwe unodzivirira maitiro ekufambisa data pakati pesevha uye application, inotungamira kune a kushanda kwakagadziridzwa uye mutoro wakaderera paInternet.
Ini ndiri Sebastián Vidal, injiniya wekombuta anofarira nezve tekinoroji uye DIY. Uyezve, ndini musiki we tecnobits.com, kwandinogovera zvidzidzo kuti tekinoroji iwanikwe uye inonzwisisika kumunhu wese.