E nā hoa, hoʻomaka ʻia kahi papa ʻē aʻe
Ua mālama ʻia ka webinar
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:
I kēia manawa e kākau kākou i ka mea kuʻuna Aloha kākou honua:
print (“Hello world!”)
Ma hope o kēlā - e hoʻomaka kākou i ka pōʻaiapuni:
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
ʻ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
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:
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:
ʻ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:
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):
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 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:
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});
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()
:
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
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:
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 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:
Hiki nō iā mākou huli ma ka nui o ka laha:
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,
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:
Ke hoʻokō nei mākou i nā noi
Aia kekahi mea hoʻohana $in:
db.unicorns.find({weight: {$in: [650, 704]}})
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:
ʻ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}})
Hiki nō hoʻi hoʻonui waiwai:
A aia kekahi hoʻopiʻi - hui pū ʻana o ka hoʻonui a me ka hoʻokomo:
Penei ka hana ana koho kahua:
Ke waiho nei e hoʻohui i kekahi mau huaʻōlelo e pili ana skip и kali:
E nā hoa, ʻo ia wale nō, inā makemake ʻoe e ʻike i nā kikoʻī,
Source: www.habr.com