إدراج Node.js MongoDB


أدخل في المجموعة

لإدراج سجل أو مستند كما يطلق عليه في MongoDB ، في مجموعة ، نستخدم insertOne()الطريقة.

المستند في MongoDB هو نفسه سجل في MySQL

المعلمة الأولى insertOne()للطريقة هي كائن يحتوي على الاسم (الأسماء) والقيمة (القيم) لكل حقل في المستند الذي تريد إدراجه.

يأخذ أيضًا وظيفة رد الاتصال حيث يمكنك العمل مع أي أخطاء أو نتيجة الإدراج:

مثال

أدخل مستندًا في مجموعة "العملاء":

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myobj = { name: "Company Inc", address: "Highway 37" };
  dbo.collection("customers").insertOne(myobj, function(err, res) {
    if (err) throw err;
    console.log("1 document inserted");
    db.close();
  });
});

احفظ الكود أعلاه في ملف يسمى "demo_mongodb_insert.js" وقم بتشغيل الملف:

قم بتشغيل "demo_mongodb_insert.js"

C:\Users\Your Name>node demo_mongodb_insert.js

والتي ستعطيك هذه النتيجة:

1 document inserted

ملاحظة: إذا حاولت إدراج مستندات في مجموعة غير موجودة ، فسيقوم MongoDB بإنشاء المجموعة تلقائيًا.



أدخل مستندات متعددة

لإدراج مستندات متعددة في مجموعة في MongoDB ، نستخدم insertMany()الطريقة.

المعلمة الأولى insertMany()للطريقة هي مصفوفة من الكائنات تحتوي على البيانات التي تريد إدراجها.

يأخذ أيضًا وظيفة رد الاتصال حيث يمكنك العمل مع أي أخطاء أو نتيجة الإدراج:

مثال

أدخل مستندات متعددة في مجموعة "العملاء":

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myobj = [
    { name: 'John', address: 'Highway 71'},
    { name: 'Peter', address: 'Lowstreet 4'},
    { name: 'Amy', address: 'Apple st 652'},
    { name: 'Hannah', address: 'Mountain 21'},
    { name: 'Michael', address: 'Valley 345'},
    { name: 'Sandy', address: 'Ocean blvd 2'},
    { name: 'Betty', address: 'Green Grass 1'},
    { name: 'Richard', address: 'Sky st 331'},
    { name: 'Susan', address: 'One way 98'},
    { name: 'Vicky', address: 'Yellow Garden 2'},
    { name: 'Ben', address: 'Park Lane 38'},
    { name: 'William', address: 'Central st 954'},
    { name: 'Chuck', address: 'Main Road 989'},
    { name: 'Viola', address: 'Sideway 1633'}
  ];
  dbo.collection("customers").insertMany(myobj, function(err, res) {
    if (err) throw err;
    console.log("Number of documents inserted: " + res.insertedCount);
    db.close();
  });
});

احفظ الكود أعلاه في ملف يسمى "demo_mongodb_insert_multiple.js" وقم بتشغيل الملف:

قم بتشغيل "demo_mongodb_insert_multiple.js"

C:\Users\Your Name>node demo_mongodb_insert_multiple.js

والتي ستعطيك هذه النتيجة:

Number of documents inserted: 14

كائن النتيجة

عند تنفيذ insertMany()الطريقة ، يتم إرجاع كائن نتيجة.

يحتوي كائن النتيجة على معلومات حول كيفية تأثير الإدراج على قاعدة البيانات.

الكائن الذي تم إرجاعه من المثال أعلاه بدا كما يلي:

{
  result: { ok: 1, n: 14 },
  ops: [
    { name: 'John', address: 'Highway 71', _id: 58fdbf5c0ef8a50b4cdd9a84 },
    { name: 'Peter', address: 'Lowstreet 4', _id: 58fdbf5c0ef8a50b4cdd9a85 },
    { name: 'Amy', address: 'Apple st 652', _id: 58fdbf5c0ef8a50b4cdd9a86 },
    { name: 'Hannah', address: 'Mountain 21', _id: 58fdbf5c0ef8a50b4cdd9a87 },
    { name: 'Michael', address: 'Valley 345', _id: 58fdbf5c0ef8a50b4cdd9a88 },
    { name: 'Sandy', address: 'Ocean blvd 2', _id: 58fdbf5c0ef8a50b4cdd9a89 },
    { name: 'Betty', address: 'Green Grass 1', _id: 58fdbf5c0ef8a50b4cdd9a8a },
    { name: 'Richard', address: 'Sky st 331', _id: 58fdbf5c0ef8a50b4cdd9a8b },
    { name: 'Susan', address: 'One way 98', _id: 58fdbf5c0ef8a50b4cdd9a8c },
    { name: 'Vicky', address: 'Yellow Garden 2', _id: 58fdbf5c0ef8a50b4cdd9a8d },
    { name: 'Ben', address: 'Park Lane 38', _id: 58fdbf5c0ef8a50b4cdd9a8e },
    { name: 'William', address: 'Central st 954', _id: 58fdbf5c0ef8a50b4cdd9a8f },
    { name: 'Chuck', address: 'Main Road 989', _id: 58fdbf5c0ef8a50b4cdd9a90 },
    { name: 'Viola', address: 'Sideway 1633', _id: 58fdbf5c0ef8a50b4cdd9a91 } ],
  insertedCount: 14,
  insertedIds: [
    58fdbf5c0ef8a50b4cdd9a84,
    58fdbf5c0ef8a50b4cdd9a85,
    58fdbf5c0ef8a50b4cdd9a86,
    58fdbf5c0ef8a50b4cdd9a87,
    58fdbf5c0ef8a50b4cdd9a88,
    58fdbf5c0ef8a50b4cdd9a89,
    58fdbf5c0ef8a50b4cdd9a8a,
    58fdbf5c0ef8a50b4cdd9a8b,
    58fdbf5c0ef8a50b4cdd9a8c,
    58fdbf5c0ef8a50b4cdd9a8d,
    58fdbf5c0ef8a50b4cdd9a8e,
    58fdbf5c0ef8a50b4cdd9a8f
    58fdbf5c0ef8a50b4cdd9a90,
    58fdbf5c0ef8a50b4cdd9a91 ]
}

يمكن عرض قيم الخصائص على النحو التالي:

مثال

قم بإرجاع عدد المستندات المدرجة:

console.log(res.insertedCount)

والتي ستنتج هذه النتيجة:

14

الحقل _id

إذا لم تحدد _idحقلاً ، فسيقوم MongoDB بإضافة حقل لك وتعيين معرف فريد لكل مستند.

في المثال أعلاه لم _idيتم تحديد أي حقل ، وكما ترى من الكائن الناتج ، قام MongoDB بتعيين معرف فريد لكل مستند.

إذا قمت بتحديد الحقل ، يجب أن_id تكون القيمة فريدة لكل مستند:

مثال

أدخل ثلاثة سجلات في جدول "المنتجات" ، مع _idالحقول المحددة:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myobj = [
    { _id: 154, name: 'Chocolate Heaven'},
    { _id: 155, name: 'Tasty Lemon'},
    { _id: 156, name: 'Vanilla Dream'}
  ];
  dbo.collection("products").insertMany(myobj, function(err, res) {
    if (err) throw err;
    console.log(res);
    db.close();
  });
});

احفظ الكود أعلاه في ملف يسمى "demo_mongodb_insert_id.js" وقم بتشغيل الملف:

قم بتشغيل "demo_mongodb_insert_id.js"

C:\Users\Your Name>node demo_mongodb_insert_id.js

والتي ستعطيك هذه النتيجة:

{
  result: { ok: 1, n: 3 },
  ops: [
    { _id: 154, name: 'Chocolate Heaven },
    { _id: 155, name: 'Tasty Lemon },
    { _id: 156, name: 'Vanilla Dream } ],
  insertedCount: 3,
  insertedIds: [
    154,
    155,
    156 ]
}