E wehe i ka webinar "MongoDB Basics"

E nā hoa, hoʻomaka ʻia kahi papa ʻē aʻe "Ka waihona waihona" e hana ʻia ana i ka lā ʻapōpō, no laila ua mālama mākou i kahi haʻawina ākea kuʻuna, ʻo ka hoʻopaʻa ʻana i hiki iā ʻoe ke nānā maanei. I kēia manawa ua kamaʻilio mākou e pili ana i ka waihona MongoDB kaulana: ua aʻo mākou i kekahi o nā subtleties, nānā i nā kumu o ka hana, nā mea hiki a me ka hoʻolālā. Ua hoʻopili pū mākou i kekahi mau mea hoʻohana.

E wehe i ka webinar "MongoDB Basics"

Ua mālama ʻia ka webinar ʻIvana Belt, ke poʻo o ka hoʻomohala kikowaena ma Citymobil.

Nā hiʻohiʻona MongoDB

ʻO MongoDB he DBMS e pili ana i ka palapala i wehe ʻole ʻia ʻaʻole pono ka wehewehe ʻana o ka papa kuhikuhi. Hoʻonohonoho ʻia ʻo ia ʻo NoSQL a hoʻohana iā BSON (binary JSON). Hiki ke hoʻonui ʻia ma waho o ka pahu, kākau ʻia ma C++ a kākoʻo i ka syntax JavaScript. ʻAʻohe kākoʻo SQL.

Loaʻa iā MongoDB nā mea hoʻokele no nā ʻōlelo papahana kaulana (C, C++, C#, Go, Java, JavaScript, Perl, PHP, Python, Ruby, etc.). Aia kekahi mau mea hoʻokele kūhelu ʻole a kākoʻo ʻia e ke kaiāulu no nā ʻōlelo papahana ʻē aʻe.

ʻAe, e nānā kākou i nā kauoha kumu e pono ai.

No laila, e kau iā MongoDB ma Docker, kākau mākou:

docker run -it --rm -p 127.0.0.1:27017:27017 
--name mongo-exp-project mongo
docker exec -it mongo-exp-project mongo

Pela ka hana ana hoʻokuʻu mea kūʻai MongoDB:

E wehe i ka webinar "MongoDB Basics"

I kēia manawa e kākau kākou i ka mea kuʻuna Aloha kākou honua:

print (“Hello world!”)

E wehe i ka webinar "MongoDB Basics"

Ma hope o kēlā - e hoʻomaka kākou i ka pōʻaiapuni:

E wehe i ka webinar "MongoDB Basics"

E like me kāu i ʻike ai, ma mua o mākou JS mau, a ʻo MongoDB kahi unuhi ʻōlelo JavaScript piha.

I ka manawa hea e hoʻohana ai iā MongoDB?

Aia kekahi moʻolelo ʻo ka hoʻomaka maʻamau ma Silicon Valley ka mea nāna i wehe i ka puke "HTML for Dummies" i hoʻokahi pule i hala. ʻO ka papa hea kāna e koho ai? E ʻae ʻo ia he mea maʻalahi loa iā ia inā, no nā kumu maopopo, loaʻa iā ia ka JavaScript ma kāna polokalamu kele pūnaewele, ke holo nei ʻo Node.js ma ke kikowaena, a ke holo pū nei ʻo JavaScript i ka waihona. ʻO kēia ka helu helu 1.

ʻO ka lua, aia hana nui ʻO Peter Zaitsev, kekahi o nā loea ʻikepili maikaʻi loa ma Rusia. I loko o ia mea, kamaʻilio ʻo Peter e pili ana i MySQL a me MongoDB, e nānā pono i ka manawa a me ka mea maikaʻi loa e hoʻohana ai.

ʻO ke kolu, makemake wau e koʻikoʻi i ke ʻano o MongoDB e ka maikaʻi scalability - a ʻo kēia kekahi o nā hiʻohiʻona nui o ka waihona. Inā ʻaʻole ʻoe i ʻike ma mua i ke ʻano o ka ukana, kūpono ʻo MongoDB. Eia kekahi, kākoʻo ʻo ia i nā hiʻohiʻona waho o ka pahu e like me ʻāwili ʻana и hana hou, a ua hana ʻia kēia mau mea āpau, ʻo ia hoʻi, maʻalahi loa ka hana.

No ka huaʻōlelo i MongoDB a laila:

  • ʻO nā ʻikepili nā waihona (nā papahana, nā hōʻiliʻili o nā papa);
  • ma MongoDB aia kekahi mea e like me ka ohi - he mea hoʻohālikelike kēia o kahi papaʻaina a me kahi pūʻulu o nā palapala e pili pono ai;
  • ua like nā palapala me ke kaula.

Hana ʻikepili a me nā nīnau maʻalahi

No ka hana ʻana i kahi waihona, pono ʻoe e hoʻomaka e hoʻohana iā ia:

use learn

E wehe i ka webinar "MongoDB Basics"

I kēia manawa, e hana kākou i wahi hoʻokomo liʻiliʻi o ka palapala. E like me ka laʻana, he unicorn i kapa ʻia ʻo Aurora:

db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450})

db - he mea honua no ke komo ʻana i ka waihona, ʻo ia hoʻi, ʻo ka "monga" ponoʻī. Hoʻohana ʻia no ka wehe ʻana sh, no ka hana hou - rs.

He aha nā kauoha i loaʻa i ka mea? db:

E wehe i ka webinar "MongoDB Basics"

No laila, e hoʻi kāua i kā mākou kauoha, ma muli o ka hōʻike ʻana o ka console ua hoʻokomo ʻia kahi laina:

E wehe i ka webinar "MongoDB Basics"

ʻO ka hua'ōlelo unicorns ma kahi hui db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450}) hōʻike i kahi hōʻiliʻili. E ʻoluʻolu e hoʻomaopopo ma aneʻi ʻaʻole mākou i wehewehe a hana i ka hōʻiliʻili, akā kākau wale i nā 'unicorns', hana i kahi hoʻokomo, a loaʻa iā mākou kahi hōʻiliʻili.

A penei mākou e hiki ai kiʻi i kā mākou mau hōʻiliʻili a pau:

db.getCollectionNames()

A laila. Hiki hookomo i kekahi ʻohi:

E wehe i ka webinar "MongoDB Basics"

I kēia manawa e nīnau kāua ʻohi piha (hoʻomanaʻo mākou iā ʻoe i kā mākou hihia i loaʻa ka ʻikepili e pili ana i ʻelua unicorns me ka inoa like):

db.unicorns.find()

E ʻoluʻolu e hoʻomaopopo, eia kā mākou JSON (he inoa, ke kāne, ke kaumaha, kekahi mea ʻike mea kūʻokoʻa):

E wehe i ka webinar "MongoDB Basics"

I kēia manawa e hoʻokomo i ʻelua mau unicorn me nā inoa like:

db.unicorns.insert({name: 'Leto', gender: 'm', 
home: 'Arrakeen', worm: false}) 
db.unicorns.insert({name: 'Leto', gender: 'm', 
home: 'Arrakeen', worm: false})

A e ʻike kākou i ka mea i hana ʻia:

E wehe i ka webinar "MongoDB Basics"

E like me kāu e ʻike ai, loaʻa iā mākou nā kahua ʻē aʻe: ka hale и ilo, i loaa ole ia Aurora.

E hoʻohui i kekahi mau unicorn hou aʻe:

db.unicorns.insertMany([{name: 'Horny', dob: new Date(1992,2,13,7,47), loves: ['carrot','papaya'], weight: 600, gender: 'm', vampires: 63}, 
{name: 'Aurora', dob: new Date(1991, 0, 24, 13, 0), loves: ['carrot', 'grape'], weight: 450, gender: 'f', vampires: 43}, 
{name: 'Unicrom', dob: new Date(1973, 1, 9, 22, 10), loves: ['energon', 'redbull'], weight: 984, gender: 'm', vampires: 182}, 
{name: 'Roooooodles', dob: new Date(1979, 7, 18, 18, 44), loves: ['apple'], weight: 575, gender: 'm', vampires: 99}])

No laila, ua hoʻokomo mākou i ʻehā mau mea hou me ka JavaScript:

E wehe i ka webinar "MongoDB Basics"

I kou manaʻo, ma hea nā waihona ʻoi aku ka maʻalahi o ka mālama ʻana i ka ʻikepili passport: relational databases a i ʻole Mongo?

ʻIke ʻia ka pane - ma Monga, a hōʻike maikaʻi kēia hiʻohiʻona i luna. ʻAʻole ia he mea huna he ʻeha ʻo KLADR i ka Russian Federation. A maikaʻi loa ʻo Monga me nā ʻōlelo, no ka mea hiki iā ʻoe ke hoʻonohonoho i nā mea āpau ma ke ʻano he array, a e maʻalahi ke ola. A he mea maikaʻi Mea hoʻohana no MongoDB.

E hoʻohui i nā unicorn hou aʻe:

db.unicorns.insert({name: 'Solnara', dob: new Date(1985, 6, 4, 2, 1), loves:['apple', 'carrot', 'chocolate'], weight:550, gender:'f', vampires:80}); 
db.unicorns.insert({name:'Ayna', dob: new Date(1998, 2, 7, 8, 30), loves: ['strawberry', 'lemon'], weight: 733, gender: 'f', vampires: 40}); 
db.unicorns.insert({name:'Kenny', dob: new Date(1997, 6, 1, 10, 42), loves: ['grape', 'lemon'], weight: 690, gender: 'm', vampires: 39}); 
db.unicorns.insert({name: 'Raleigh', dob: new Date(2005, 4, 3, 0, 57), loves: ['apple', 'sugar'], weight: 421, gender: 'm', vampires: 2}); 
db.unicorns.insert({name: 'Leia', dob: new Date(2001, 9, 8, 14, 53), loves: ['apple', 'watermelon'], weight: 601, gender: 'f', vampires: 33}); 
db.unicorns.insert({name: 'Pilot', dob: new Date(1997, 2, 1, 5, 3), loves: ['apple', 'watermelon'], weight: 650, gender: 'm', vampires: 54}); 
db.unicorns.insert({name: 'Nimue', dob: new Date(1999, 11, 20, 16, 15), loves: ['grape', 'carrot'], weight: 540, gender: 'f'}); 
db.unicorns.insert({name: 'Dunx', dob: new Date(1976, 6, 18, 18, 18), loves: ['grape', 'watermelon'], weight: 704, gender: 'm', vampires: 165});

E wehe i ka webinar "MongoDB Basics"

I kēia manawa e nānā i nā palapala. As makahiki Mālama mākou i nā mea holoʻokoʻa. Aia kekahi ʻike e pili ana i ka mea a kahi unicorn i aloha ai, ʻaʻole i loaʻa i kēlā me kēia kanaka kēia ʻike. No laila i loko o ka wahaheʻe piha piha.

Ma ke ala, e hōʻike i nā hopena i ʻoi aku ka nani, hiki iā ʻoe ke kāhea i ke ʻano ma ka hopena o ke kauoha ʻimi .pretty():

E wehe i ka webinar "MongoDB Basics"

Inā pono ʻoe e kiʻi ʻike e pili ana i ka hewa hou loa, e hoʻohana i kēia kauoha:

db.getLastError()

Hiki ke hana i kēia ma hope o kēlā me kēia hoʻokomo ʻana, a i ʻole hiki iā ʻoe ke hoʻonohonoho i ka Manaʻo Kākau. ʻOi aku ka maikaʻi e heluhelu e pili ana iā ia ma palapala kūhelu, ʻo ia hoʻi, ʻike nui ʻia ma Monga. Ma ke ala, loaʻa nō ma Habré ʻatikala maikaʻi ma keia manawa.

E neʻe kākou i nā nīnau paʻakikī

Nīnau no ka waiwai kahua pololei:

db.unicorns.find({gender: 'm'})

Ma ke kākau ʻana i kēlā noi, e loaʻa iā mākou kahi papa inoa o nā unicorn kāne āpau i ka hopena console.

Hiki iā ʻoe ke hana nīnau ma kekahi mau kahua i ka manawa hoʻokahi: ma ke kane a me ke kaumaha:

E wehe i ka webinar "MongoDB Basics"

Ma luna, e hoʻolohe i ka mea kūikawā $gt mea koho, ka mea e hiki ai iā ʻoe ke hoʻohua i nā unicorn kāne a pau ma mua o 700.

Hiki iā ʻoe ke nānā aia paha ke kahua?:

db.unicorns.find({vampires: {$exists: false}})

A penei paha:

db.unicorns.find({'parents.father': {$exists: true}})

ʻO ka hui aʻe e lawe mai i nā unicorns, hoʻomaka ko lākou inoa me nā huaʻōlelo A a i ʻole a:

db.unicorns.find({name: {$regex: "^[Aa]"}})

Ano, e noonoo kakou ʻimi hoʻonohonoho. Nīnau #1: He aha ka hopena o kēia kauoha:

db.unicorns.find({loves:'apple'})

Pololei: ʻo ka poʻe a pau i makemake i ka ʻāpala.

ʻO ke kauoha aʻe e hoʻihoʻi wale i kēlā mau ʻikepili unicorn i loaʻa ʻo nā ʻōleʻa a me nā ʻalani wale nō:

db.unicorns.find({loves:[ "apple", "watermelon" ]})

A hoʻokahi kauoha hou:

db.unicorns.find({loves:[ "watermelon", "apple" ]})

I kā mākou hihia, ʻaʻole ia e hoʻihoʻi i kekahi mea, no ka mea ke hele mākou i kahi array, ua hoʻohālikelike ʻia ka mea mua me ka mea mua, ʻo ka lua me ka lua, a pēlā aku. ma ke kūlana keia mau waiwai.

A penei kona ano e ʻimi ana ma ka laha me ka hoʻohana ʻana i ka mea hoʻohana "OR".:

E wehe i ka webinar "MongoDB Basics"

E hōʻike mai kēia hiʻohiʻona iā mākou huli me $all operator. A ma ʻaneʻi he mea nui ʻole ke kaʻina:

E wehe i ka webinar "MongoDB Basics"

Hiki nō iā mākou huli ma ka nui o ka laha:

E wehe i ka webinar "MongoDB Basics"

Akā, pehea inā makemake mākou e ʻike i kahi ʻano ʻoi aku ka nui ma mua o hoʻokahi? Aia kekahi mea hoʻohana no kēia $ kahi, hiki iā ʻoe ke kākau i nā mea paʻakikī:

db.unicorns.find({$where: function() { return this.loves && (this.loves.length > 1) } })

Ma ke ala, inā makemake ʻoe e hoʻomaʻamaʻa, I laila iaʻoe waihona me nā kauoha.

Nā Hiʻona Cursor

E hoʻokaʻawale iki a haʻi i kekahi mau huaʻōlelo e pili ana i nā hiʻohiʻona o Monga:

  • loaʻa () a me nā hana ʻē aʻe ʻaʻole e hoʻihoʻi i ka ʻikepili - hoʻihoʻi lākou i kahi i kapa ʻia ʻo "cursor";
  • ʻo ka ʻike mākou i ka paʻi ʻia ʻana o ka ʻikepili, ʻo ia ka hana a ka mea unuhi.

Paʻi ʻana db.unicorns.find me ka ʻole o nā pale, loaʻa iā mākou ka wikiwiki:

E wehe i ka webinar "MongoDB Basics"

Ke hoʻokō nei mākou i nā noi

Aia kekahi mea hoʻohana $in:

db.unicorns.find({weight: {$in: [650, 704]}})

E wehe i ka webinar "MongoDB Basics"

I kēia manawa e kamaʻilio kākou e pili ana i ka hōʻano hou. No ka laʻana, e hoʻololi kākou i ke kaumaha o ka unicorn Roooodles:

db.unicorns.update({name: "Roooooodles"}, {weight: 2222})

Ma muli o kā mākou hana, ka palapala e hōʻano hou ʻia, a hoʻokahi wale nō kahua i ʻōlelo ʻia e koe i loko:

E wehe i ka webinar "MongoDB Basics"

ʻO ia, ʻo ka mea wale nō e koe no kā mākou mea, ʻo ke kaumaha 2222 a, ʻoiaʻiʻo, id.

Hiki iā ʻoe ke hoʻoponopono i ke kūlana me ka hoʻohana ʻana $hoʻonoho:

db.unicorns.update({_id: ObjectId("5da6ea4d9703b8be0089e6db")}, {$set: { "name" : "Roooooodles", "dob" : ISODate("1979-08-18T18:44:00Z"), "loves" : [ "apple" ], "gender" : "m", "vampires" : 99}})

E wehe i ka webinar "MongoDB Basics"

Hiki nō hoʻi hoʻonui waiwai:

E wehe i ka webinar "MongoDB Basics"

A aia kekahi hoʻopiʻi - hui pū ʻana o ka hoʻonui a me ka hoʻokomo:

E wehe i ka webinar "MongoDB Basics"

Penei ka hana ana koho kahua:

E wehe i ka webinar "MongoDB Basics"

E wehe i ka webinar "MongoDB Basics"

Ke waiho nei e hoʻohui i kekahi mau huaʻōlelo e pili ana skip и kali:

E wehe i ka webinar "MongoDB Basics"

E nā hoa, ʻo ia wale nō, inā makemake ʻoe e ʻike i nā kikoʻī, e nānā i ka wikiō holoʻokoʻa. A mai poina e waiho i kāu mau manaʻo!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka