Arabic feliratok

Unwind Operator - Data Wranging with MongoDB

Beágyazókód kérése
4 Languages

Showing Revision 1 created 06/09/2016 by Udacity Robot.

  1. حسنًا، لنخصص بعضًا من الوقت للتحدث عن
  2. عامل تشغيل تفكيك aggregation. في كثير من المواقف، سنقوم
  3. بإحصاء العدد أو إجراء نوع آخر من العمليات
  4. استنادًا إلى القيم الموجودة في حقل الصفيف. ونحتاج
  5. إلى استخدام قيم حقل الصفيف بطريقة ما. فباستخدام
  6. هذه البيانات، يمكننا الإجابة عن أحد الأسئلة
  7. على غرار ما يلي: في المجموعة الماثلة لدينا، من الذي عمد إلى تضمين
  8. معظم إشارات المستخدم في تغريداته؟ ويكمن السبب الذي يرجع إليه ارتباط ذلك
  9. بعامل تشغيل التفكيك في تضمين إشارات
  10. المستخدم في التغريدات الموجودة داخل حقل
  11. صفيف. وفيما يتعلق بهذه البيانات، تذكروا أن
  12. إشارات المستخدم موجودة داخل مستند entities الفرعي، وفي
  13. حقل user mentions. وحقل إشارات المستخدم
  14. عبارة عن صفيف يشتمل على مستندات تمثل كل
  15. إشارة للمستخدم على حدة. لذلك، سأعمد هنا إلى
  16. .التوقف عند بعض الأمثلة التي تستعين بهذا الاستعلام
  17. أستخدم هنا عامل تشغيل لم نتعرف عليه
  18. من قبل. وهو في مجمله يسترجع المستندات التي
  19. يُقدر طول حقل user mentions فيها والموجود في مستند entities الفرعي بالقيمة
  20. 3. إذًا، سأعمد إلى كتابة هذا. وإذا مرّرنا
  21. لأعلى، يمكننا ملاحظة أن هذا المثال هنا يشتمل بداخله في حقيقة الأمر على
  22. ثلاث إشارات للمستخدم. وبذلك، تكتمل الصورة
  23. لديك، حيث إن الحقل entities هو حقل المستوى العلوي
  24. ،هنا. إذ يشتمل على مستند فرعي ممثل في قيمة
  25. وتُعد إشارات المستخدم
  26. أحد حقول مستند entities الفرعي. وحقل إشارات المستخدم هو حقل
  27. قيمة صفيف. ويمكننا ملاحظة أنه يشتمل على مستندات
  28. تأخذ شكلاً مشابهًا لهذا، في حين أن ما يجذب اهتمامنا يتمثل في
  29. هذه الأسماء المعروضة على الشاشة هنا، حيث تمثل
  30. .أسماء مستخدمين مشار إليهم في هذه التغريدة تحديدًا
  31. وفيما يتعلق بأي من التغريدات التي تشير إلى مستخدم، سيكون لديك
  32. ،صفيف مقترن بمستندات على غرار هذا المستند وموجود بداخله
  33. وذلك من خلال أسماء المستخدمين المشار إليهم. سنعمد الآن إلى
  34. اكتشاف عدد جميع إشارات المستخدم
  35. التي تم إنشاؤها بواسطة مستخدم فردي لموقع Twitter. إذًا، سيتعين
  36. ،تفحص جميع التغريدات. وسيتضمن ذلك إنشاء بعض المجموعات
  37. وذلك لأننا نريد
  38. تجميع التغريدات التي أنشأها المستخدم نفسه. ولكننا نريد أيضًا
  39. إحصاء عدد إشارات المستخدم. ويُعد التفكيك
  40. أداة ملائمة لتنفيذ ذلك من أجل الإجابة على هذا السؤال تحديدًا. لنلقِ
  41. .نظرة. حسنًا، يرد هنا مسار aggregation
  42. يتم في أول مرحلة استخدام عامل تشغيل التفكيك
  43. ويتم تشغيله مقارنةً بحقل user mentions. تذكروا
  44. أن التفكيك يؤدي إلى إنشاء نسخة
  45. .من المستند المتضمن تشتمل على أي حقل صفيف
  46. حيث يكرر جميع الحقول باستثناء العناصر الموجودة في
  47. الصفيف. وسينشئ نسخة واحدة
  48. لكل عنصر في الصفيف. والفرق الوحيد
  49. بين جميع النسخ سيكمن في أن هذا الحقل
  50. ،سيشتمل على كل من هذه القيم المختلفة في الصفيف
  51. وذلك في المستندات التي يتم إنشاؤها. دعوني أبرز
  52. هذا الأمر بشكل أوضح. إذا أعدنا النظر في
  53. هذه التغريدة تحديدًا، فسنجد أن
  54. مرحلة التفكيك ستؤدي إلى إنشاء ثلاثة مستندات كمخرجات لمستند
  55. التغريدة الموضح هنا. إن جميع الحقول الأخرى التي تظهر
  56. لدينا هنا وأي شيء آخر في
  57. مستند التغريدة سيكون مماثلاً بشكل دقيق. وسيكون الفرق الوحيد
  58. في أن حقل user mentions سيشتمل على مستند واحد متمثل في
  59. ،قيمته المضمنة في كل من هذه النسخ الثلاث لهذه التغريدة. في النسخة الأولى
  60. ،سيشتمل على هذه كقيمة له؛ وفي النسخة الثانية
  61. سيشتمل على هذه القيمة، وفي النسخة الثالثة، سيشتمل على
  62. هذه القيمة. ففي المستندات التي يتم تمريرها خلال
  63. ،المرحلة التالية، وهي في هذه الحالة ممثلة في مرحلة المجموعة
  64. ستشتمل المستندات على قيمة مختلفة لحقل
  65. إشارات المستخدم. ويتضح ذلك الآن في الحالة الماثلة لدينا. ما يعنينا
  66. حقًا هو أثر التقسيم هنا. والذي لا يؤثر تأثيرًا كبيرًا
  67. .باستخدام قيمة إشارات المستخدم في كل مرة
  68. لأن ما يهمنا تنفيذه في المرحلة التالية هو
  69. إحصاء عدد جميع المستندات التي يتم تمريرها
  70. عبر مرحلة المجموعة هذه باستخدام
  71. اسم المستخدم نفسه الذي أنشأ
  72. التغريدة. وتذكروا مرة أخرى أن السبب يرجع إلى أن السؤال الذي نتطلع إلى الإجابة عنه
  73. هنا هو من عمد إلى تضمين معظم إشارات المستخدم في تغريداته؟ وبحلول الوقت
  74. ،الذي نصل فيه إلى مرحلة التفكيك
  75. سنكون قد أنشأنا مستندًا فرديًا لكل إشارة للمستخدم
  76. في المجموعة. وستؤدي المجموعة
  77. إلى تجميع الإشارات معًا استنادًا إلى اسم المستخدم
  78. الذي أنشأ التغريدة، ثم تنشئ
  79. حقل عدد هنا
  80. كجزء من عملية التجميع. وأُذكر مرة أخرى
  81. بأن قيمة المجموع تشير إلى زيادة هذا العداد كلما
  82. ظهر لك المستند المجمع مع
  83. اسم المستخدم أو أحد المستندات المشتملة على
  84. اسم المستخدم نفسه. ثم نضطلع بعملية الفرز
  85. وتحديد الحالات. إذًا، السؤال المطروح عليك
  86. هنا هو هل يؤدي ذلك إلى إحصاء عدد إشارات المستخدم
  87. الفريدة؟ أقصد بذلك أنه في حالة إشارة مستخدم التغريدة
  88. إلى المستخدم نفسه أكثر من مرة، فهل يؤدي ذلك إلى
  89. إحصاء كل إشارة من تلك الإشارات أم إحصاء
  90. جميع إشارات المستخدم نفسه كإشارات واحدة؟ وإذا
  91. ،كانت الإشارات الفريدة هي التي يتم إحصاؤها هنا
  92. فالسؤال الذي سأطرحه عليكم يتعلق بماهية نوع
  93. مسار aggregation الذي سنحتاج إلى تجميعه من أجل
  94. إحصاء عدد الإشارات الفريدة للمستخدمين. حسنًا، لنباشر
  95. عملية التشغيل. ولأننا حددنا هذه القيمة بالعدد 1، فسنحصل على
  96. مستند واحد في صفيف النتيجة المقترن بالعدد
  97. 21 الذي يمثل حقل إشارات المستخدم لهذا المستخدم. وفي حالة
  98. عدم وضوح الأمر بخصوص هذه
  99. النقطة، فإن الميزة من إطار عمل aggregation في MongoDB تكمن في تنفيذ
  100. هذا العمل بأكمله
  101. من جانب الخادم. يعني ذلك أن جميع
  102. ما يتم التعبير عنه فيما يخص هذا الاستعلام بعينه عبر الشبكة ووصولاً إلى
  103. البرنامج العميل لا يؤدي إلا إلى نتيجة واحدة ممثلة في
  104. النتيجة التي ألقينا نظرة عليها للتو. إن إطار عمل aggregation فعال، ليس فقط
  105. بسبب ما يقدمه من وظائف، بل بسبب ما يتمتع به من
  106. ،سرعة يمكن من خلالها إجراء هذه الاستعلامات
  107. .حيث تُعد هذه الوظائف أساسية للخادم نفسه