في هذا التمرين، سنستمر في العمل على
خادم Mongoose العقدة الذي قمنا بتطويره في التمرين السابق.
و سنفعل اختلافا آخر من ذلك.
بالإضافة إلى ذلك، سننظر أيضًا في كيفية دعم Mongoose للمستندات الفرعية،
وهذا يمكننا من تخزين
مستند داخل مستند لتخزين معلومات إضافية.
دعونا ننظر إلى ذلك في التمرين المقبل.
استمرار مع المثال الذي كنا نعمل عليه، الآن،
في ملف index.js،
والآن سنرى طريقة جديدة لإنشاء طبق وإضافته إلى تطبيقنا.
لذلك، في وقت سابق كنا قد فعلت فار NewDish والأطباق وتحديد الطبق.
الآن، في هذه الحالة سوف نستخدم طريقة جديدة تسمى الأطباق إنشاء والتي تأخذ،
كمعلمة، نيوديش لإنشاء ومن ثم يحفظه في تطبيقنا.
لذلك، بدلا من القيام بهذا حفظ نيوديش،
يمكننا ببساطة إزالة ذلك والتعامل مباشرة مع الأطباق خلق طريقة هنا.
لذا، فإن طريقة إنشاء الأطباق ستأخذ كمعلمة
مستند جديد يحتاج إلى تخزينه في قاعدة البيانات الخاصة بنا،
ثم ينشئ ويضيف المستند إلى قاعدة البيانات.
بعد ذلك، يمكننا الاستمرار في بقية التمرين.
سيظهر هذا التعديل الطفيف
أن نفس التطبيق يعمل بنفس الطريقة تمامًا كما كان من قبل.
لذلك، مع هذا التغيير،
اسمحوا لي فقط تغيير المسافة البادئة
هنا بحيث تسلسل الأساليب ثم واضح جدا.
لذلك، ونحن أولا القيام الأطباق خلق التي سوف يعود
وعد، ومن ثم تغيير إلى ذلك الحين وبعد ذلك سنقوم بتنفيذ
الخطوات المتبقية على الطبق الذي تم إنشاؤه.
دعونا حفظ التغييرات ومن ثم الذهاب ونلقي نظرة على هذا الإصدار من الخادم لدينا.
الذهاب إلى المحطة،
مرة أخرى، تشغيل التطبيق،
ونحن نرى أنه سيخلق بالضبط نفس الاختلاف السابق للخادم.
لذلك، نحن إنشاء طبق جديد هنا ومن ثم إدراجه
في قاعدة البيانات وبعد ذلك
نحن استرداد هذا الطبق ومن ثم الطباعة على الشاشة.
مع هذا التغيير، هذا هو الوقت المناسب بالنسبة لنا للقيام
git الالتزام مع الرسالة Mongoose الجزء الثاني.
لذا، دعنا نتحقق من حالة git ثم نضيف الملف إلى المستودع،
ثم نقوم بتنفيذ git مع الرسالة Mongoose الجزء الثاني.
الاستمرار في التمرين،
في الخطوة التالية سنقوم بإضافة وثيقة فرعية
إلى الوثيقة ونرى كيف يمكن تخزين الوثائق الفرعية في قاعدة بياناتنا.
لذا، انتقل إلى ملف dishes.js،
سأقوم بإضافة مخطط آخر إلى ملف dishes.js الخاص بي يسمى
مخطط التعليق
ثم حدد هذا كمخطط جديد.
في مخطط التعليق هذا،
كما كنت تتوقع بالفعل،
سنستخدم هذا لتخزين التعليقات حول الطبق.
لذلك، سوف تحتوي التعليقات على حقل تصنيف
وهو من رقم النوع،
والحد الأدنى لقيمته هو واحد،
والقيمة القصوى هي خمسة والمطلوب صحيح.
لذلك، يمكنك أن ترى أنه عند استخدام حقل مع رقم النوع،
يمكنك تحديد الحدود له إذا اخترت.
ثم الحقل التالي هو حقل تعليق سيكون من سلسلة النوع.
لذلك، هذا يخزن رسالة ومن ثم مطلوب
هو صحيح وبعد ذلك سنقوم أيضا إضافة حقل آخر يسمى المؤلف،
وهو من نوع سلسلة والمطلوب هو صحيح.
سنقوم أيضًا بإضافة حقل الطابع الزمني لهذا،
وتعيين ذلك إلى true.
لذلك، لكل تعليق تتم إضافته،
سنقوم أيضًا بتخزين الطابع الزمني المقابل.
لذلك، الآن بعد أن أعلنا مخطط تعليق،
يمكننا بعد ذلك المضي قدما وتعديل مخطط الطبق لتكون قادرة على تخزين التعليقات.
لذلك، داخل مخطط الأطباق،
يمكننا إضافة التعليقات
التي هي عبارة عن مجموعة من مخطط تعليق النوع،
مما يعني أن كل كائن طبق،
مستند طبق يمكن أن تحتوي على تعليقات متعددة المخزنة داخل صفيف داخل مستند الطبق.
لذلك، هذه هي وثائق التعليق تصبح وثائق فرعية داخل وثيقة طبق.
لذلك، نحن تخزين جميع التعليقات حول الطبق داخل
الطبق نفسه كمجموعة من وثائق التعليق.
لذا، هذا هو استخدام المستند الفرعي في Mongoose.
بعد ذلك، دعونا نذهب إلى ملف index.js ثم تعديل ملف index.js لدينا.
هنا، فإنها تخلق الطبق تماما كما كان من قبل.
ثم بعد إنشاء الطبق،
ثم نحن وحدة التحكم تسجيل الطبق.
بعد ذلك، سنقوم بتحديث الطبق.
لذلك، سنقول أطباق تجد عن طريق الهوية والتحديث.
لذلك، سنقوم بتعديل الطبق الذي أدخلناه للتو في الخطوة السابقة.
لذلك، سوف نقول، «البحث عن طريق الهوية والتحديث.»
ونحن في طريقنا إلى توريد.
في هذا يأخذ معلمتين،
المعلمة الأولى هي الطبق.
الآن، هذا الطبق _id بالطبع يشير إلى هذا الطبق الذي قمنا بإدراجه للتو،
وبعد ذلك سنقوم بتعديل هذا الطبق نفسه في الخطوة التالية.
لذا، سنقول، «صحن. _id.» وبعد ذلك،
بين قوسين، نحدد $ مجموعة، وصف،
اختبار محدث وصحيح جديد.
لذلك، هذا، نحن تعديل الطبق الذي قمنا
بإدراجه للتو عن طريق تحديث وصفه هناك.
الآن، هذا يجب أن يكون محاطاً بالداخل
هذا العلم الثاني الذي نقوم بتوريده هنا،
القولون الجديد يساوي صحيح،
يعني أنه بمجرد اكتمال تحديث الطبق،
ثم هذا سيعود الطبق، طبق
محدث مرة أخرى لنا.
لذلك، هذا هو السبب في استخدام هذا العلم هنا، على سبيل المثال، صحيح جديد.
لذلك، سيتم إرجاع هذا الطبق في الخطوة التالية.
وهكذا، نحن ذاهبون إلى أخذ ذلك الطبق ومن ثم طباعة ذلك الطبق.
لذلك، في الخطوة التالية،
سنقوم بتعديل هذا ونقول، «هذا، ثم طبق.»
وبعد ذلك، سنقوم بعمل سجل وحدة التحكم من الطبق.
ثم بعد ذلك، سنقوم بإدراج تعليق في الطبق.
لذلك، سوف نقول، «طبق، تعليقات، دفع.»
أذكر أن التعليقات هي حقل داخل الطبق.
لذا، بالعودة إلى المخطط،
نرى أن هذه التعليقات عبارة عن مصفوفة من نوع التعليقات.
لذلك، مما يعني أنه يمكننا دفع عنصر في هذه الصفيف.
لذا، بالعودة إلى هنا،
سنقول، «تعليقات الطبق تدفع».
وبعد ذلك، سوف ندفع وثيقة تعليق إلى الطبق هنا.
لذلك، سأقول، «تعليقات طبق دفع.»
وحدد الحقول هنا.
لذا، سنقول، «تقييم خمسة، تعليق ومؤلف.»
وهكذا، وهذا سيدفع هذا التعليق إلى حقل التعليق من هذا الطبق المحدد.
لذا، الآن بعد أن قمنا بتعديل
الطبق، الخطوة التالية التي سنقوم بها هي،
دعني أغلق هذا ثم أضعه فيه، ثم هناك.
سأعود و أصلح ذلك في فترة قصيرة
لذلك، الآن بعد أن قمنا بتعديل الطبق،
نحتاج إلى حفظ الطبق.
لذا، نحن سَنَقُولُ، «صحن العودة آمن.»
لذلك، في هذه الخطوة،
نقوم بإدخال تعليق في الطبق،
الطبق الذي قمنا بإنشائه وتحديثه للتو،
ثم نقوم بحفظ هذا التعليق؛
وبعد ذلك، سيعود هذا الطبق.
وعندما يتم إرجاع الطبق في رد الاتصال التالي،
سأقول بعد ذلك، «طبق سجل وحدة التحكم».
وبعد ذلك،
سوف نقول، «العودة».
لذلك، مع هذا، قمنا بتعديل ملف index.js لدينا.
دعونا حفظ التغييرات وإلقاء نظرة على هذا التطبيق.
الذهاب إلى المحطة،
دعونا تشغيل نبم بداية ومن ثم نرى القيمة الناتجة هنا.
لذا، بالعودة، نرى أنه في الخطوة الأولى،
أنشأنا هذا الطبق هنا مع الاسم والوصف كما قدمنا في وقت سابق.
وبعد ذلك، بمجرد إنشاء الطبق،
في الخطوة الثانية،
قمنا بتحديث الطبق ثم طبع النسخة المحدثة من الطبق.
لذلك، يتم طباعة النسخة المحدثة من الطبق هناك حق.
ويمكنك أن ترى أن الوصف قد تم تحديثه من الحالة السابقة،
ولكن المعرف يبقى بالضبط نفس الطبق الذي أنشأنا في وقت سابق.
وحقل التعليقات،
كما ترون هنا،
هو مصفوفة فارغة والمدخن.
في الخطوة الثالثة، ندفع التعليق في طبقنا هنا؛
وبعد ذلك،
تمت إضافة هذا التعليق الخاص الذي أضفناه إلى مجموعة التعليقات هذه.
لذلك، يمكنك أن ترى أن التعليق يتم تضمينه هنا،
وهذا هو الطبق المحدث الذي تم طباعته الآن على الشاشة هنا.
لذلك، يمكنك أن ترى أننا قد فعلت عدة خطوات واحدا تلو الآخر مع طبقنا.
أنشأنا الطبق أولا،
ثم قمنا بتحديث الطبق،
ثم أدخلنا تعليقا في الطبق،
وهو وثيقة فرعية داخل وثيقة الطبق.
وبعد ذلك، طبعنا النتيجة لك.
مع هذا، نكمل هذا التمرين.
في هذا التمرين، رأينا كيف يمكننا،
أولاً، إنشاء طبق باستخدام أطباق إنشاء،
ثم رأينا استخدام المستندات الفرعية: هناك،
قمنا بتعريف مخطط داخل
ملف dishes.js ثم استخدام مخطط التعليق الذي حددناه
ثم تعريف الحقل في مخطط الأطباق ك من نوع التعليق.
ثم، في ملف index.js،
تمكنا من إنشاء طبق،
وتحديث الطبق وأيضا دفع
وثيقة تعليق في الطبق ومن ثم حفظ التغييرات هنا.
مع هذا، نكمل هذا التمرين.
هذا هو الوقت المناسب بالنسبة لك للقيام Git Kermit مع الرسالة، «Mongoose الجزء الثالث».