اوپن ويبينار "MongoDB Basics"

دوستو، ٻيو ڪورس لانچ "ڊيٽابيس" سڀاڻي ٿيندي، تنهنڪري اسان هڪ روايتي کليل سبق منعقد ڪيو، جنهن جي رڪارڊنگ توهان ڏسي سگهو ٿا هتي. هن ڀيري اسان مشهور MongoDB ڊيٽابيس بابت ڳالهايو: اسان ڪجهه ذيلي ذخيري جو اڀياس ڪيو، آپريشن جي بنياديات، صلاحيتن ۽ فن تعمير کي ڏٺو. اسان ڪجھ استعمال ڪندڙ ڪيسن تي پڻ ڇڪايو.

اوپن ويبينار "MongoDB Basics"

ويبينار منعقد ڪيو ويو ايوان بيلٽسٽي موبل تي سرور ڊولپمينٽ جو سربراهه.

MongoDB خاصيتون

منڊو ڊي هڪ کليل ذريعو دستاويز تي مبني DBMS آهي جنهن کي ٽيبل اسڪيما جي وضاحت جي ضرورت ناهي. اهو NoSQL جي طور تي درجه بندي ڪيو ويو آهي ۽ استعمال ڪري ٿو BSON (بائنري JSON). اسڪيلبل آئوٽ آف دي باڪس، C++ ۾ لکيل ۽ JavaScript نحو کي سپورٽ ڪري ٿو. ڪو به SQL سپورٽ نه آهي.

MongoDB ڪيترن ئي مشهور پروگرامنگ ٻولين لاءِ ڊرائيور آهن (C, C++, C#, Go, Java, JavaScript, Perl, PHP, Python, Ruby, etc.). ٻين پروگرامنگ ٻولين لاءِ غير رسمي ۽ ڪميونٽي-سپورٽ ڊرائيور پڻ آهن.

خير، اچو ته بنيادي حڪمن تي نظر رکون جيڪي ڪارائتو ٿي سگهن ٿيون.

تنهن ڪري، ڊڪر ۾ MongoDB کي ترتيب ڏيڻ لاء، اسين لکون ٿا:

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

ائين ٿئي ٿو ڪلائنٽ لانچ منڊو ڊي بي

اوپن ويبينار "MongoDB Basics"

هاڻي اچو ته روايت لکون هيلو ورلڊ:

print (“Hello world!”)

اوپن ويبينار "MongoDB Basics"

هن کان پوءِ - اچو ته چڪر شروع ڪريون:

اوپن ويبينار "MongoDB Basics"

جيئن توهان محسوس ڪيو، اسان جي سامهون باقاعده JS, ۽ مونگو ڊي بي هڪ مڪمل جاوا اسڪرپٽ مترجم آهي.

MongoDB ڪڏهن استعمال ڪجي؟

هڪ ڪهاڻي آهي ته سلڪون وادي ۾ اوسط شروعات اهو شخص آهي جنهن هڪ هفتي اڳ ڪتاب “HTML for Dummies” کوليو. هو ڪهڙو اسٽيڪ چونڊيندو؟ اتفاق ڪيو ته اهو هن لاءِ تمام آسان آهي جڏهن، واضح سببن لاءِ، هن وٽ پنهنجي برائوزر ۾ JavaScript آهي، Node.js سرور تي هلندڙ آهي، ۽ JavaScript به ڊيٽابيس ۾ هلندي آهي. هي نقطو نمبر 1 آهي.

ٻيو، اتي آهي عظيم ڪارڪردگي پيٽر زيتسوف، روس ۾ بهترين ڊيٽابيس ماهرن مان هڪ آهي. ان ۾، پيٽر MySQL ۽ MongoDB بابت ڳالهائيندو آهي، خاص ڌيان ڏيڻ تي جڏهن ۽ ڪهڙي استعمال ڪرڻ بهتر آهي.

ٽيون، مان زور ڏيڻ چاهيان ٿو ته مونگو ڊي بي جي خاصيت آهي سٺي پيماني تي - ۽ هي ڊيٽابيس جي اهم خاصيتن مان هڪ آهي. جيڪڏهن توهان اڳ ۾ نه ٿا ڄاڻو ته لوڊ ڇا ٿيندو، MongoDB مڪمل آهي. ان کان علاوه، ان کي سپورٽ ڪري ٿو آئوٽ آف باڪس نمونن جهڙوڪ ڇڪڻ и نقل، ۽ اهو سڀ ڪجهه بلڪل شفاف ٿي چڪو آهي، اهو آهي، اهو ڪم ڪرڻ تمام آسان آهي.

جي حوالي سان اصطلاح MongoDB ۾ پوء:

  • ڊيٽابيس ڊيٽابيس آهن (اسڪيمون، جدولن جو مجموعو)؛
  • MongoDB ۾ هڪ اهڙي شيء آهي جيئن گڏ ڪرڻ - هي هڪ ٽيبل جو هڪ اينالاگ آهي ۽ دستاويزن جو هڪ سيٽ آهي، جيڪو منطقي طور تي ڳنڍيل هجڻ گهرجي؛
  • دستاويز هڪ تار جي برابر آهن.

ڊيٽابيس ٺاھڻ ۽ سادو سوال

ڊيٽابيس ٺاهڻ لاء، توهان کي صرف ان کي استعمال ڪرڻ شروع ڪرڻ جي ضرورت آهي:

use learn

اوپن ويبينار "MongoDB Basics"

هاڻي اچو ته دستاويز جو هڪ ننڍڙو داخل ڪريو. اچو ته، مثال طور، ارورا نالي هڪ unicorn:

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

db - ڊيٽابيس تائين رسائي حاصل ڪرڻ لاء هڪ عالمي اعتراض، اهو آهي، حقيقت ۾، "مونگا" پاڻ. ڇڪڻ لاء استعمال ٿيل shنقل لاءِ - rs.

اعتراض کي ڪهڙو حڪم آهي؟ db:

اوپن ويبينار "MongoDB Basics"

تنهن ڪري، اچو ته اسان جي حڪم ڏانهن موٽون، جنهن جي نتيجي ۾ ڪنسول رپورٽ ڪندو ته هڪ لائن داخل ڪئي وئي آهي:

اوپن ويبينار "MongoDB Basics"

لفظ unicorns هڪ ٽيم ۾ db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450}) مجموعو ظاهر ڪري ٿو. مھرباني ڪري ھتي ياد رکو ته اسان مجموعو بيان يا ٺاھيو نه آھي، پر صرف لکيو آھي 'يونيڪورن'، ھڪڙو داخل ڪيو، ۽ اسان وٽ ھڪڙو مجموعو آھي.

۽ اهو اسان ڪيئن ڪري سگهون ٿا اسان جا سڀئي مجموعا حاصل ڪريو:

db.getCollectionNames()

۽ ايئن. ڪري ٻيو داخل ڪريو جمع:

اوپن ويبينار "MongoDB Basics"

هاڻي اچو ته پڇو مڪمل جمع (اسان توهان کي ياد ڏياريون ٿا ته اسان جي صورت ۾ ڊيٽابيس اڳ ۾ ئي ساڳئي نالي سان ٻن unicorns بابت معلومات تي مشتمل آهي):

db.unicorns.find()

مهرباني ڪري نوٽ ڪريو، هتي اسان جو JSON آهي (هڪ نالو، جنس، وزن، ڪجهه منفرد اعتراض جي سڃاڻپ ڪندڙ آهي):

اوپن ويبينار "MongoDB Basics"

ھاڻي اچو ته ساڳين نالن سان ڪجھ وڌيڪ unicorns داخل ڪريون:

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

۽ اچو ته ڏسون ڇا ٿيو:

اوپن ويبينار "MongoDB Basics"

جئين توهان ڏسي سگهو ٿا، اسان وٽ اضافي شعبا آهن: گهر и کڙا، جيڪو Aurora وٽ ناهي.

اچو ته ڪجھ وڌيڪ unicorns شامل ڪريو:

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}])

سو، اسان جاوا اسڪرپٽ استعمال ڪندي چار وڌيڪ شيون داخل ڪيون:

اوپن ويبينار "MongoDB Basics"

توهان جي راء ۾، پاسپورٽ ڊيٽا کي ذخيرو ڪرڻ لاء ڪهڙي ڊيٽابيس ۾ وڌيڪ آسان آهي: تعلقي ڊيٽابيس يا مونگو؟

جواب واضح آهي - مونگا ۾، ۽ مٿين مثال هن کي چڱي طرح ڏيکاري ٿو. اهو ڪو راز ناهي ته KLADR روسي فيڊريشن ۾ درد آهي. ۽ مونگا پتي سان تمام سٺي نموني سان ٺهڪي اچي ٿي، ڇو ته توهان هر شيء کي هڪ صف طور مقرر ڪري سگهو ٿا، ۽ زندگي تمام آسان ٿي ويندي. ۽ اھو ھڪڙو سٺو آھي MongoDB لاءِ استعمال ڪندڙ ڪيس.

اچو ته وڌيڪ unicorns شامل ڪريو:

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});

اوپن ويبينار "MongoDB Basics"

هاڻي دستاويز تي ڌيان ڏيو. جيئن ڊب اسان سموريون شيون ذخيرو ڪندا آهيون. اتي پڻ معلومات آهي ته هڪ يونيسيور ڇا پيار ڪندو آهي، ۽ هر ڪنهن کي اها ڄاڻ ناهي. سو اندر ۾ ڪوڙ مڪمل صف.

رستي جي ذريعي، نتيجن کي وڌيڪ سهڻي نموني ڏيکارڻ لاء، توهان ڳولا جي حڪم جي آخر ۾ طريقي سان سڏي سگهو ٿا .pretty():

اوپن ويبينار "MongoDB Basics"

جيڪڏهن توهان کي حاصل ڪرڻ جي ضرورت آهي تازي غلطي بابت ڄاڻ، ھيٺ ڏنل حڪم استعمال ڪريو:

db.getLastError()

اهو ٿي سگهي ٿو هر داخل ٿيڻ کان پوءِ، يا توهان ترتيب ڏئي سگهو ٿا Write Concern. ان جي باري ۾ پڙهڻ لاء بهتر آهي سرڪاري دستاويز، جيڪو، رستي جي ذريعي، مونگا ۾ تمام معلوماتي آهي. رستي جي ذريعي، اهو پڻ دستياب آهي Habré تي سٺو مضمون ان موقعي تي.

اچو ته وڌيڪ پيچيده سوالن ڏانهن وڃو

درست فيلڊ جي قيمت لاء سوال:

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

اهڙي درخواست لکڻ سان، اسان ڪنسول آئوٽ پٽ ۾ سڀني مرد يونيڪارن جي لسٽ حاصل ڪنداسين.

توهان پڻ ڪري سگهو ٿا هڪ ئي وقت ڪيترن ئي شعبن تي سوالجنس ۽ وزن جي لحاظ کان:

اوپن ويبينار "MongoDB Basics"

مٿي، خاص تي ڌيان ڏيو $gt چونڊيندڙ، جيڪو توهان کي 700 کان وڌيڪ وزن جي سڀني نر يوني ڪورن کي پالڻ جي اجازت ڏئي ٿو.

توهان چيڪ ڪري سگهو ٿا ڇا ميدان بلڪل موجود آهي؟:

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

يا ته:

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

ايندڙ ٽيم يونيسيرن کي ڪڍندي، جن جا نالا الف يا الف سان شروع ٿين ٿا:

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

هاڻي اچو ته غور ڪريون صف جي ڳولا. سوال #1: هي حڪم ڇا ٿيندو:

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

اھو صحيح آھي: ھر ماڻھو جيڪو سيب سان پيار ڪندو آھي.

هيٺ ڏنل حڪم صرف انهن يونيسيرن ڊيٽا تي مشتمل هوندي صرف انب ۽ تربوز:

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

۽ هڪ وڌيڪ حڪم:

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

اسان جي صورت ۾، اهو ڪجھ به واپس نه ڪندو، ڇاڪاڻ ته جڏهن اسان هڪ ايري پاس ڪندا آهيون، پهرين عنصر جي مقابلي ۾ پهرين سان، ٻئي کي سيڪنڊ سان، وغيره. اهو آهي ته، صف پڻ ملائڻ گهرجي. پوزيشن سان اهي قدر.

۽ اھو اھو آھي جيڪو اھو ڏسڻ ۾ اچي ٿو "OR" آپريٽر استعمال ڪندي هڪ صف ذريعي ڳولهيو:

اوپن ويبينار "MongoDB Basics"

هيٺ ڏنل مثال اسان کي ڏيکاريندو $all آپريٽر استعمال ڪندي ڳولھيو. ۽ هتي اهو سلسلو غير اهم آهي:

اوپن ويبينار "MongoDB Basics"

اسان پڻ ڪري سگهون ٿا صف جي ماپ ذريعي ڳولھيو:

اوپن ويبينار "MongoDB Basics"

پر ڇا جيڪڏهن اسان هڪ صف ڳولڻ چاهيون ٿا جنهن جي سائيز هڪ کان وڏي آهي؟ هن لاء هڪ آپريٽر آهي $ ڪٿي، جنهن سان توهان وڌيڪ پيچيده شيون لکي سگهو ٿا:

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

رستي ۾، جيڪڏهن توهان مشق ڪرڻ چاهيو ٿا، توهان اتي آهيو حڪم سان فائل.

ڪرسر جون خاصيتون

اچو ته ٿورڙو بحث ڪريون ۽ مونگا جي خاصيتن بابت چند لفظ چئون:

  • find() ۽ ٻيا عمل ڊيٽا واپس نه ٿا ڪن - اهي هڪ نام نهاد "ڪرسر" موٽندا آهن؛
  • حقيقت اها آهي ته اسان ڏسون ٿا ڊيٽا کي ڇپائي رهيو آهي مترجم جو ڪم.

ٽائپنگ db.unicorns.find بغير قوس جي، اسان کي ترت ملي ٿو:

اوپن ويبينار "MongoDB Basics"

اسان درخواستن کي پورو ڪرڻ جاري رکون ٿا

$in آپريٽر پڻ آهي:

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

اوپن ويبينار "MongoDB Basics"

هاڻي اچو ته تازه ڪاري بابت ڳالهايون. مثال طور، اچو ته Rooooodles unicorn جو وزن تبديل ڪريون:

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

اسان جي عملن جي نتيجي ۾، دستاويز مڪمل طور تي اپڊيٽ ڪيو ويندو، ۽ صرف هڪ مخصوص فيلڊ ان ۾ رهندو:

اوپن ويبينار "MongoDB Basics"

اھو آھي، رڳو ھڪڙي شيء جيڪا اسان جي اعتراض لاء رھندي آھي وزن 2222 ۽، يقينا، id.

توھان استعمال ڪندي صورتحال کي درست ڪري سگھو ٿا $ مقرر:

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

اوپن ويبينار "MongoDB Basics"

اهو پڻ ممڪن آهي قدرن ۾ واڌارو:

اوپن ويبينار "MongoDB Basics"

۽ اتي پڻ آهي مٿي ڪرڻ - تازه ڪاري ۽ داخل ڪرڻ جو ميلاپ:

اوپن ويبينار "MongoDB Basics"

هتي اهو ڪيئن ڪيو ويو آهي ميدان جي چونڊ:

اوپن ويبينار "MongoDB Basics"

اوپن ويبينار "MongoDB Basics"

ان جي باري ۾ چند لفظن کي شامل ڪرڻ لاء رهي ٿو چپ ڪريو и حد:

اوپن ويبينار "MongoDB Basics"

ساٿيو، اهو سڀ ڪجهه آهي، جيڪڏهن توهان تفصيل ڄاڻڻ چاهيو ٿا، پوري وڊيو ڏسو. ۽ پنهنجا رايا ڇڏڻ نه وساريو!

جو ذريعو: www.habr.com

تبصرو شامل ڪريو