تحسين أداء MongoDB
حلول بسيطة
ضبط config لزيادة الإنتاجية و performance
إضافة indices ( الفهارس ) على أساس Query patterns
حلول متوسطة
معرفة نسب read-to-write
استخدام الذاكرة Determine
إضافة read replicas لفصل read and write querie و تقليل الحمل .
الاستفادة من connection pools للاستفادة من multiple replicas
اكتشف long-running queries و dumping في collection الجديدة
تحسين long-running queries خطوة بخطوة
حلول متقدمة
الترقية إلى أحدث إصدار من MongoDB
مراجعة data modeling و indexing
افحص query patterns و profiling
اتبع best practices عن querying data
تجنب unindexed aggregations
باستخدام limits
باستخدام projections
استخدام $hint في queries لتحديد index معين
استخدم Increment Operator لإجراء العمليات من Server-Side
إضافة shards لتوزيع الكتابة عبر multiple nodes
تكرار shards و تشكيل كتلة عالية من cluster
#استمر_تصل
حلول بسيطة
ضبط config لزيادة الإنتاجية و performance
إضافة indices ( الفهارس ) على أساس Query patterns
حلول متوسطة
معرفة نسب read-to-write
استخدام الذاكرة Determine
إضافة read replicas لفصل read and write querie و تقليل الحمل .
الاستفادة من connection pools للاستفادة من multiple replicas
اكتشف long-running queries و dumping في collection الجديدة
تحسين long-running queries خطوة بخطوة
حلول متقدمة
الترقية إلى أحدث إصدار من MongoDB
مراجعة data modeling و indexing
افحص query patterns و profiling
اتبع best practices عن querying data
تجنب unindexed aggregations
باستخدام limits
باستخدام projections
استخدام $hint في queries لتحديد index معين
استخدم Increment Operator لإجراء العمليات من Server-Side
إضافة shards لتوزيع الكتابة عبر multiple nodes
تكرار shards و تشكيل كتلة عالية من cluster
#استمر_تصل
مفهوم Events في Node.js
Event concept
الـ Event هو في الأساس إشارة إلى حقيقة أو حدث مجدول يمكن عمل Modify لظروف(Circumstances ) المحيطة به.
في البرمجة ، يمكننا التعامل مع كل حالة من Circumstances التي يرسلها الكمبيوتر أو يلتقطها ، وتشمل كل ما يحدث له Processing من معالجة ملف إلى النقرة التي يقوم بها المستخدم في المتصفح.
يمنحنا التعامل مع Event في Nodejs إمكانية فهم كيفية عمل systems لأنها تستند عمليًا إلى نفس نمط pub-sub.
Events in Javascript
الـ Events في جافا سكريبت هي الطريقة التي يجب أن نتحكم بها في Actions أو Behaviors التي يطلقها بعض Entity.
في Javascript ، يمكننا تحديد تدفقات البرمجة attached عند حدوث Event معين.
تحتوي Events الخاصة بـ Client و Server على API مختلفة تمامًا ، على الرغم من أنها تبدو متشابهة ، إلا أن لها معالجات وميزات مختلفة.
Module Events
يتكون Nodejs من بنية Asynchronous تعتمد على الـ Events .
هذا يعني أن الغالبية العظمى من وحدات ووظائف Nodejs تعمل مع التقاط events ، مثل File System أو HTTP Modules ، حيث يعتمد جزء كبير من عملها على عمل Events .
بدعم من هذه الـModules ، يمكننا تنفيذ نمط Pub-Sub في أي جزء من تطبيقنا.
هذا بفضل Event Emitter Class ، أنه بمجرد توسيع أي Object من هذه Class ، يمكننا عمليا استخدام جميع ميزات هذا Pattern .
Event Emitter
هي class داخل events module ، والتي توفر لنا وظائف متعددة للعمل مع events ، مثل creation event ، management of communication channels ، emission of events ، والكثير من ميزات الاخرى.
انظر للمثال في Code 1 يشرح Event Emitter في الكومنت
طرق Event Handling Methods
تعمل Event Emitter Class من خلال آليات callback وتحتوي على طريقتين رئيسيتين تساعدنا في listen إلى events هما:
Event Subscription: On.
Event Publishing: Emit.
انظر للمثال في 3 , Code 2 في الكومنت
بفضل هاتين الطريقتين الرئيسيتين ، يمكننا عمليًا send و receive المعلومات من أي نقطة في تطبيقنا ، ولا يتعين علينا سوى عمل subscribe و إرسال events التي نختارها.
قائمة methods الأكثر استخداما
الـ events module واسعة النطاق ، لا تقتصر فقط على القدرة Emit events و listen إليها ، ولكن يمكننا أيضًا management of communication channels وتعيين listeners و إزالتهم.
فيما يلي methods الأكثر استخدامًا ووصفها المختصر:
الـ eventNames : إرجاع array of strings من سلاسل eventsالمعينة.
لـ once : تقوم تشغيل Event listener الذي سيتم مرة واحدة فقط.
لـ removeListener: تقوم بإزالة listener معين.
الـ removeAllListeners : تقوم بإزالة جميع listeners من event .
#استمر_تصل
Event concept
الـ Event هو في الأساس إشارة إلى حقيقة أو حدث مجدول يمكن عمل Modify لظروف(Circumstances ) المحيطة به.
في البرمجة ، يمكننا التعامل مع كل حالة من Circumstances التي يرسلها الكمبيوتر أو يلتقطها ، وتشمل كل ما يحدث له Processing من معالجة ملف إلى النقرة التي يقوم بها المستخدم في المتصفح.
يمنحنا التعامل مع Event في Nodejs إمكانية فهم كيفية عمل systems لأنها تستند عمليًا إلى نفس نمط pub-sub.
Events in Javascript
الـ Events في جافا سكريبت هي الطريقة التي يجب أن نتحكم بها في Actions أو Behaviors التي يطلقها بعض Entity.
في Javascript ، يمكننا تحديد تدفقات البرمجة attached عند حدوث Event معين.
تحتوي Events الخاصة بـ Client و Server على API مختلفة تمامًا ، على الرغم من أنها تبدو متشابهة ، إلا أن لها معالجات وميزات مختلفة.
Module Events
يتكون Nodejs من بنية Asynchronous تعتمد على الـ Events .
هذا يعني أن الغالبية العظمى من وحدات ووظائف Nodejs تعمل مع التقاط events ، مثل File System أو HTTP Modules ، حيث يعتمد جزء كبير من عملها على عمل Events .
بدعم من هذه الـModules ، يمكننا تنفيذ نمط Pub-Sub في أي جزء من تطبيقنا.
هذا بفضل Event Emitter Class ، أنه بمجرد توسيع أي Object من هذه Class ، يمكننا عمليا استخدام جميع ميزات هذا Pattern .
Event Emitter
هي class داخل events module ، والتي توفر لنا وظائف متعددة للعمل مع events ، مثل creation event ، management of communication channels ، emission of events ، والكثير من ميزات الاخرى.
انظر للمثال في Code 1 يشرح Event Emitter في الكومنت
طرق Event Handling Methods
تعمل Event Emitter Class من خلال آليات callback وتحتوي على طريقتين رئيسيتين تساعدنا في listen إلى events هما:
Event Subscription: On.
Event Publishing: Emit.
انظر للمثال في 3 , Code 2 في الكومنت
بفضل هاتين الطريقتين الرئيسيتين ، يمكننا عمليًا send و receive المعلومات من أي نقطة في تطبيقنا ، ولا يتعين علينا سوى عمل subscribe و إرسال events التي نختارها.
قائمة methods الأكثر استخداما
الـ events module واسعة النطاق ، لا تقتصر فقط على القدرة Emit events و listen إليها ، ولكن يمكننا أيضًا management of communication channels وتعيين listeners و إزالتهم.
فيما يلي methods الأكثر استخدامًا ووصفها المختصر:
الـ eventNames : إرجاع array of strings من سلاسل eventsالمعينة.
لـ once : تقوم تشغيل Event listener الذي سيتم مرة واحدة فقط.
لـ removeListener: تقوم بإزالة listener معين.
الـ removeAllListeners : تقوم بإزالة جميع listeners من event .
#استمر_تصل
❤3👍1
tecnology II Japan
يحطم الرقم القياسي العالمي لأقصى سرعة إنترنت ..
حقق المهندسون في اليابان سرعة إنترنت غير مسبوقة بلغت 319 تيرابايت في الثانية (تيرابايت / ثانية).
ولتحقيق تلك السرعة ، طور الباحثون أليافًا ضوئية تجريبية بأربعة أنوية.
اي إنه أسرع بنحو 7.6 مليون مرة مما لديك على الأرجح في المنزل وهو سريع جدًا بحيث يمكنه تنزيل ما يقرب من 80 ألف فيلم في ثانية واحدة فقط.
يحطم الرقم القياسي العالمي لأقصى سرعة إنترنت ..
حقق المهندسون في اليابان سرعة إنترنت غير مسبوقة بلغت 319 تيرابايت في الثانية (تيرابايت / ثانية).
ولتحقيق تلك السرعة ، طور الباحثون أليافًا ضوئية تجريبية بأربعة أنوية.
اي إنه أسرع بنحو 7.6 مليون مرة مما لديك على الأرجح في المنزل وهو سريع جدًا بحيث يمكنه تنزيل ما يقرب من 80 ألف فيلم في ثانية واحدة فقط.
😁4👏2
This media is not supported in your browser
VIEW IN TELEGRAM
Validation خارج الصندوق
فكره عبقريه لكن محدش يستخدمها
فكره عبقريه لكن محدش يستخدمها
😁7❤2
الـ Promises في Javascript
تم إنشاء Promises للتعامل بشكل أفضل مع العمليات Asynchrony في Javascript مما يضيف تحكمًا وتتبعًا أفضل لهذه العمليات.
تم بناء العديد من API للمتصفحات على Promises ، ومن أشهرها fetch ().
كما أن الـPromises يمكن دمجها تمامًا مع ميزات اللغة الأخرى مثلAsync / Await لتحسين reading و order .
الـ Asynchrony في Javascript
تعتمد Javascript على non-blocking في asynchronous model لتحقيق multiple operations على network ، و معالجة تفاعلات المستخدم ، وفي نفس الوقت الحفاظ على واجهة سلسة .
هذا هو سبب صعوبة handling لعمليات asynchronous في بعض الأحيان.
كانت الطريقة الأكثر شيوعًا للعمل مع asynchrony منذ فترة عن طريق callback functions ، ولكن مع بداية ES6 ، أضافوا additional mechanisms .
الـ Promises
الـ Promises هو object يمثل completion أو failure لعملية asynchronous operation .
تمت إضافة هذا object الجديد إلى لغة Javascript في ECMAScript 2015 (ES6) لدعم asynchronous management بشكل أفضل.
يتم تنفيذ promises بطريقتين :
الـ States : هي خصائص داخلية لـ Promise تشير إلى الوضع الحالي أو المستقبلي الذي يمكن أن يحدثة الـ promise .
الـ Controllers : هي طرق يتم تشغيلها بواسطة حالات الوعود لالتقاط التدفقات النهائية والشرطية .
اPromise states
تتكون Promise من الحالات الثلاث التالية:
ـPending : هي state الأولية Promise عند تنفيذه.
الـ Fulfilled ـ(success resolve): تشير هذة الـStatus إلى اكتمال عملية asynchronous بنجاح.
ـRejected : تشير تشير هذة الـStatus إلى فشل عملية asynchronous .
Controllers
ـThen : هي Method يتم تنفيذه و يحدث resolving لـ promise مع
الـ stateـ "Fulfilled "تتلقى هذه method استدعاء callback مع استمرارية عملية implementation .
ـCatch : هي Method يتم تنفيذه عند حدوث rejected لـ promise مع الـstatusـ “Rejected” تستقبل هذه method استدعاء تم implementation مع error.
تم إنشاء Promises للتعامل بشكل أفضل مع العمليات Asynchrony في Javascript مما يضيف تحكمًا وتتبعًا أفضل لهذه العمليات.
تم بناء العديد من API للمتصفحات على Promises ، ومن أشهرها fetch ().
كما أن الـPromises يمكن دمجها تمامًا مع ميزات اللغة الأخرى مثلAsync / Await لتحسين reading و order .
الـ Asynchrony في Javascript
تعتمد Javascript على non-blocking في asynchronous model لتحقيق multiple operations على network ، و معالجة تفاعلات المستخدم ، وفي نفس الوقت الحفاظ على واجهة سلسة .
هذا هو سبب صعوبة handling لعمليات asynchronous في بعض الأحيان.
كانت الطريقة الأكثر شيوعًا للعمل مع asynchrony منذ فترة عن طريق callback functions ، ولكن مع بداية ES6 ، أضافوا additional mechanisms .
الـ Promises
الـ Promises هو object يمثل completion أو failure لعملية asynchronous operation .
تمت إضافة هذا object الجديد إلى لغة Javascript في ECMAScript 2015 (ES6) لدعم asynchronous management بشكل أفضل.
يتم تنفيذ promises بطريقتين :
الـ States : هي خصائص داخلية لـ Promise تشير إلى الوضع الحالي أو المستقبلي الذي يمكن أن يحدثة الـ promise .
الـ Controllers : هي طرق يتم تشغيلها بواسطة حالات الوعود لالتقاط التدفقات النهائية والشرطية .
اPromise states
تتكون Promise من الحالات الثلاث التالية:
ـPending : هي state الأولية Promise عند تنفيذه.
الـ Fulfilled ـ(success resolve): تشير هذة الـStatus إلى اكتمال عملية asynchronous بنجاح.
ـRejected : تشير تشير هذة الـStatus إلى فشل عملية asynchronous .
Controllers
ـThen : هي Method يتم تنفيذه و يحدث resolving لـ promise مع
الـ stateـ "Fulfilled "تتلقى هذه method استدعاء callback مع استمرارية عملية implementation .
ـCatch : هي Method يتم تنفيذه عند حدوث rejected لـ promise مع الـstatusـ “Rejected” تستقبل هذه method استدعاء تم implementation مع error.
👍1
الـ Promises في Javascript
تم إنشاء Promises للتعامل بشكل أفضل مع العمليات Asynchrony في Javascript مما يضيف تحكمًا وتتبعًا أفضل لهذه العمليات.
تم بناء العديد من API للمتصفحات على Promises ، ومن أشهرها fetch ().
كما أن الـPromises يمكن دمجها تمامًا مع ميزات اللغة الأخرى مثلAsync / Await لتحسين reading و order .
الـ Asynchrony في Javascript
تعتمد Javascript على non-blocking في asynchronous model لتحقيق multiple operations على network ، و معالجة تفاعلات المستخدم ، وفي نفس الوقت الحفاظ على واجهة سلسة .
هذا هو سبب صعوبة handling لعمليات asynchronous في بعض الأحيان.
كانت الطريقة الأكثر شيوعًا للعمل مع asynchrony منذ فترة عن طريق callback functions ، ولكن مع بداية ES6 ، أضافوا additional mechanisms .
الـ Promises
الـ Promises هو object يمثل completion أو failure لعملية asynchronous operation .
تمت إضافة هذا object الجديد إلى لغة Javascript في ECMAScript 2015 (ES6) لدعم asynchronous management بشكل أفضل.
يتم تنفيذ promises بطريقتين :
الـ States : هي خصائص داخلية لـ Promise تشير إلى الوضع الحالي أو المستقبلي الذي يمكن أن يحدثة الـ promise .
الـ Controllers : هي طرق يتم تشغيلها بواسطة حالات الوعود لالتقاط التدفقات النهائية والشرطية .
اPromise states
تتكون Promise من الحالات الثلاث التالية:
ـPending : هي state الأولية Promise عند تنفيذه.
الـ Fulfilled ـ(success resolve): تشير هذة الـStatus إلى اكتمال عملية asynchronous بنجاح.
ـRejected : تشير تشير هذة الـStatus إلى فشل عملية asynchronous .
Controllers
ـThen : هي Method يتم تنفيذه و يحدث resolving لـ promise مع
الـ stateـ "Fulfilled "تتلقى هذه method استدعاء callback مع استمرارية عملية implementation .
ـCatch : هي Method يتم تنفيذه عند حدوث rejected لـ promise مع الـstatusـ “Rejected” تستقبل هذه method استدعاء تم implementation مع error.
#استمر_تصل
تم إنشاء Promises للتعامل بشكل أفضل مع العمليات Asynchrony في Javascript مما يضيف تحكمًا وتتبعًا أفضل لهذه العمليات.
تم بناء العديد من API للمتصفحات على Promises ، ومن أشهرها fetch ().
كما أن الـPromises يمكن دمجها تمامًا مع ميزات اللغة الأخرى مثلAsync / Await لتحسين reading و order .
الـ Asynchrony في Javascript
تعتمد Javascript على non-blocking في asynchronous model لتحقيق multiple operations على network ، و معالجة تفاعلات المستخدم ، وفي نفس الوقت الحفاظ على واجهة سلسة .
هذا هو سبب صعوبة handling لعمليات asynchronous في بعض الأحيان.
كانت الطريقة الأكثر شيوعًا للعمل مع asynchrony منذ فترة عن طريق callback functions ، ولكن مع بداية ES6 ، أضافوا additional mechanisms .
الـ Promises
الـ Promises هو object يمثل completion أو failure لعملية asynchronous operation .
تمت إضافة هذا object الجديد إلى لغة Javascript في ECMAScript 2015 (ES6) لدعم asynchronous management بشكل أفضل.
يتم تنفيذ promises بطريقتين :
الـ States : هي خصائص داخلية لـ Promise تشير إلى الوضع الحالي أو المستقبلي الذي يمكن أن يحدثة الـ promise .
الـ Controllers : هي طرق يتم تشغيلها بواسطة حالات الوعود لالتقاط التدفقات النهائية والشرطية .
اPromise states
تتكون Promise من الحالات الثلاث التالية:
ـPending : هي state الأولية Promise عند تنفيذه.
الـ Fulfilled ـ(success resolve): تشير هذة الـStatus إلى اكتمال عملية asynchronous بنجاح.
ـRejected : تشير تشير هذة الـStatus إلى فشل عملية asynchronous .
Controllers
ـThen : هي Method يتم تنفيذه و يحدث resolving لـ promise مع
الـ stateـ "Fulfilled "تتلقى هذه method استدعاء callback مع استمرارية عملية implementation .
ـCatch : هي Method يتم تنفيذه عند حدوث rejected لـ promise مع الـstatusـ “Rejected” تستقبل هذه method استدعاء تم implementation مع error.
#استمر_تصل
👍2
ما هو MongoDB؟
الـ MongoDB هي قاعدة بيانات NoSQL موجهة document-oriented تستخدم لتخزين بيانات valume data بدلاً من استخدام table و rows كما هو الحال في relational databses التقليدية ، تستخدم MongoDB الـ collections و الـ documents .
ما هي collections و documents ؟
الـ Documents : تتكون من key-value وهي unit للبيانات في MongoDB.
الـ Collections : تحتوي على مجموعات من Documents و functions التي تعادل relational database tables .
15 امر في MonogDB من الاوامر المهم و الاساسية :
1.Enlist available databases
→ Show db
2 . To Create a new DB
→ use db-name
3 . See your current working directry
→ db
4 . Delete Database
db.mydb.drop()
5 . Create User
-> db.createUser({
user:'admin',
pws:'root',
roles:["readWrite", "dbAdmin"]
})
6 . Creating Collections
-> db.createCollection('customers');
7 . Showing Collections
-> show collections
8 . Inserting values into collections
-> db.customers.insert({first_name:"shubham", last_name:"Athawane"});
9 . View Collection Records
-> db.customers.find();
//And
-> db.customers.find().pretty();
//Note: pretty() will show you result in json formate
10 . Add new Document in Collections
-> db.customers.insert([{"first_name":"Virat", "last_name":"Kohli"},
{"first_name":"Taylor", "last_name":"Swift"}])
// And -> $set, $inc, $unset
-> db.customers.update({first_name:"Glen"}, {$set:{age:45}})
11 . Rename Document
-> db.customers.update({first_name:"Virat"}, {$rename:{"age":"old"}})
12 . Remove document
-> db.customers.remove({first_name:"Joe"})
13 . find the matching
-> db.customers.findOne({first_name:"Joe"})
14 . Count Rows
-> db.customers.count()
15 . This is Less than/Greater than/ Less than or Eq/Greater than or Eq operators
db.customers.find({age: {$lt: 90}})
db.customers.find({age: {$lte: 90}})
db.customers.find({age: {$gt: 90}})
db.customers.find({age: {$gte: 90}})
#استمر_تصل
الـ MongoDB هي قاعدة بيانات NoSQL موجهة document-oriented تستخدم لتخزين بيانات valume data بدلاً من استخدام table و rows كما هو الحال في relational databses التقليدية ، تستخدم MongoDB الـ collections و الـ documents .
ما هي collections و documents ؟
الـ Documents : تتكون من key-value وهي unit للبيانات في MongoDB.
الـ Collections : تحتوي على مجموعات من Documents و functions التي تعادل relational database tables .
15 امر في MonogDB من الاوامر المهم و الاساسية :
1.Enlist available databases
→ Show db
2 . To Create a new DB
→ use db-name
3 . See your current working directry
→ db
4 . Delete Database
db.mydb.drop()
5 . Create User
-> db.createUser({
user:'admin',
pws:'root',
roles:["readWrite", "dbAdmin"]
})
6 . Creating Collections
-> db.createCollection('customers');
7 . Showing Collections
-> show collections
8 . Inserting values into collections
-> db.customers.insert({first_name:"shubham", last_name:"Athawane"});
9 . View Collection Records
-> db.customers.find();
//And
-> db.customers.find().pretty();
//Note: pretty() will show you result in json formate
10 . Add new Document in Collections
-> db.customers.insert([{"first_name":"Virat", "last_name":"Kohli"},
{"first_name":"Taylor", "last_name":"Swift"}])
// And -> $set, $inc, $unset
-> db.customers.update({first_name:"Glen"}, {$set:{age:45}})
11 . Rename Document
-> db.customers.update({first_name:"Virat"}, {$rename:{"age":"old"}})
12 . Remove document
-> db.customers.remove({first_name:"Joe"})
13 . find the matching
-> db.customers.findOne({first_name:"Joe"})
14 . Count Rows
-> db.customers.count()
15 . This is Less than/Greater than/ Less than or Eq/Greater than or Eq operators
db.customers.find({age: {$lt: 90}})
db.customers.find({age: {$lte: 90}})
db.customers.find({age: {$gt: 90}})
db.customers.find({age: {$gte: 90}})
#استمر_تصل
👍2❤1