Mongoose



mongoose

ابدء

أولاً تأكد من تثبيت Node.js و Node.js

التالي قم بتثبيت npm سطر الأوامر باستخدام npm :

$ npm install mongoose

الآن نقول أننا نحب القطط الضبابية ونريد تسجيل كل هرة نجتمع معها في MongoDB. أول شيء يتعين علينا القيام به هو تضمين النمس في مشروعنا وفتح اتصال لقاعدة بيانات test على مثيلنا الحالي المحلي لـ MongoDB.

// getting-started.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

لدينا اتصال معلق بقاعدة بيانات الاختبار التي تعمل على localhost. نحتاج الآن إلى إعلامنا إذا اتصلنا بنجاح أو إذا حدث خطأ في الاتصال:

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  // we're connected!
});

بمجرد فتح اتصالنا ، سيتم استدعاء معاودة الاتصال. للإيجاز ، لنفترض أن كل التعليمة البرمجية التالية ضمن هذا الاستدعاء.

مع Mongoose ، كل شيء مشتق من Schema . دعونا الحصول على إشارة إليها وتحديد القطط لدينا.

var kittySchema = mongoose.Schema({
    name: String
});

حتى الان جيدة جدا. لدينا مخطط يحتوي على خاصية واحدة ، name ، والتي ستكون عبارة عن String . الخطوة التالية هي تجميع مخططنا في Model .

var Kitten = mongoose.model('Kitten', kittySchema);

النموذج هو فئة نقيم بها مستندات. في هذه الحالة ، سيكون كل مستند عبارة عن قطة صغيرة بها خصائص وسلوكيات كما هو معلن في مخططنا. دعونا نخلق وثيقة قطة تمثل الرجل الصغير الذي التقينا به للتو على الرصيف الخارجي:

var silence = new Kitten({ name: 'Silence' });
console.log(silence.name); // 'Silence'

يمكن للقطط أن تضحك ، لذلك دعونا نلقي نظرة على كيفية إضافة وظيفة "التحدث" إلى مستنداتنا:

// NOTE: methods must be added to the schema before compiling it with mongoose.model()
kittySchema.methods.speak = function () {
  var greeting = this.name
    ? "Meow name is " + this.name
    : "I don't have a name";
  console.log(greeting);
}

var Kitten = mongoose.model('Kitten', kittySchema);

يتم تجميع الدوال التي تتم إضافتها إلى خصائص methods المخطط في Model الأولي للنموذج ويتم عرضها في كل نسخة من المستندات:

var fluffy = new Kitten({ name: 'fluffy' });
fluffy.speak(); // "Meow name is fluffy"

لدينا حديث القطط! لكننا لم نحفظ أي شيء إلى MongoDB. يمكن حفظ كل وثيقة في قاعدة البيانات عن طريق استدعاء طريقة save . ستكون الوسيطة الأولى إلى الاستدعاء خطأ إذا حدث أي شيء.

fluffy.save(function (err, fluffy) {
  if (err) return console.error(err);
  fluffy.speak();
});

قل الوقت يمر ونحن نريد عرض جميع القطط التي رأيناها. يمكننا الوصول إلى جميع الوثائق القطة من خلال Model الهريرة.

Kitten.find(function (err, kittens) {
  if (err) return console.error(err);
  console.log(kittens);
})

نحن فقط تسجيل جميع القطط في ديسيبل لدينا إلى وحدة التحكم. إذا كنا نريد تصفية القطط لدينا بالاسم ، فإن Mongoose يدعم لغة Mongoose الغنية في بناء الجملة.

Kitten.find({ name: /^fluff/ }, callback);

يقوم هذا بإجراء بحث عن كافة المستندات التي تحتوي على خاصية اسم تبدأ بـ "Fluff" وتقوم بإرجاع النتيجة كصفيف من القطط الصغيرة إلى معاودة الاتصال.

تهانينا

هذا هو نهاية بداية سريعة لدينا. أنشأنا مخططًا ، وأضفنا طريقة مستند مخصص ، وحافظوا على القطط المحفوظة في MongoDB باستخدام Mongoose. توجه إلى Schema ، أو مستندات API لمزيد من المعلومات.