یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی
🎯 ثبت نام

آموزش join جدول (Collection) در پایگاه داده MongoDB با Node.js

آموزش join دو جدول (Collection) در MongoDB با Node.js:

MongoDB یک پایگاه داده رابطه ای (Relational Database) نیست،اما می توانید با استفاده از نقطه $lookup،یک اتصال چپ جدولی (left join) انجام داده و به وسیله یک فیلد،دو جدول را به هم متصل یا join کنید.
نقطه دسترسی $lookup،این امکان را فراهم می کند تا دو جدولی را که می خواهید به هم متصل (join) کرده را تعیین نموده و فیلدهایی نیز که باید با هم یکسان باشند را مشخص کنید.
برای درک بهتر مسئله،با یک مثال عملی،نحوه انجام کار را شرح می دهیم.
فرض کنید که دو جدول (یا Collection در MongoDB) با اطلاعات زیر،به نام “orders” و “products” دارید:

1
2
3
4
[
  { _id: 1, product_id: 154, status: 1 }
]
            <button></button>

1
2
3
4
5
6
[
  { _id: 154, name: 'Chocolate Heaven' },
  { _id: 155, name: 'Tasty Lemons' },
  { _id: 156, name: 'Vanilla Dreams' }
]
            <button></button>

سپس توسط کد زیر و توسط نقطه دسترسی $lookup،جدول “orders” را از طریق فیلد “product_id” به جدول “products” و فیلد “_id” آن متصل کرده ایم.
سپس نتایج حاصل از ترکیب دو جدول را در خروجی نمایش داده ایم:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var MongoClient = require('mongodb').MongoClient;
 
MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection('orders').aggregate([
    { $lookup:
       {
         from: 'products',
         localField: 'product_id',
         foreignField: '_id',
         as: 'orderdetails'
       }
     }
    ]).toArray(function(err, res) {
    if (err) throw err;
    console.log(JSON.stringify(res));
    db.close();
  });
});
            <button></button>

کد فوق را در فایل "demo_mongodb_join.js" ذخیره کرده و با دستور زیر،آن را اجرا نمایید:

1
2
C:\Users\Your Name>node demo_mongodb_join.js
            <button></button>

Node.js پس از اتصال (join) در جدول،اطلاعات زیر را در خروجی نشان خواهد داد:

1
2
3
4
5
6
[
  { "_id": 1, "product_id": 154, "status": 1, "orderdetails": [
    { "_id": 154, "name": "Chocolate Heaven" } ]
  }
]
            <button></button>
1398/04/19 2120 0
نظرات شما

نظرات خود را ثبت کنید...