Node.js MongoDB Join

MongoDB இல் தொகுப்புகளை இணைக்க கற்றுக்கொள்ளுங்கள்

தொகுப்புகளை இணைத்தல்

MongoDB ஒரு தொடர்புடைய தரவுத்தளம் அல்ல, ஆனால் $lookup நிலையைப் பயன்படுத்தி ஒரு இடது வெளிப்புற இணைப்பைச் செய்யலாம்.

$lookup நிலை தற்போதைய தொகுப்புடன் எந்த தொகுப்பை இணைக்க விரும்புகிறீர்கள், மற்றும் எந்த புலங்கள் பொருந்த வேண்டும் என்பதைக் குறிப்பிட உங்களை அனுமதிக்கிறது.

உங்களிடம் ஒரு "orders" தொகுப்பு மற்றும் ஒரு "products" தொகுப்பு உள்ளது என்று கருதுங்கள்:

Orders தொகுப்பு

[
  { _id: 1, product_id: 154, status: 1 }
]

Products தொகுப்பு

[
  { _id: 154, name: 'Chocolate Heaven' },
  { _id: 155, name: 'Tasty Lemons' },
  { _id: 156, name: 'Vanilla Dreams' }
]

எடுத்துக்காட்டு

பொருந்தும் "products" ஆவணங்களை "orders" தொகுப்புடன் இணைக்கவும்:

let MongoClient = require('mongodb').MongoClient;
let url = "mongodb://127.0.0.1:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  let 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();
  });
});

💡 குறிப்பு:

மேலே உள்ள குறியீட்டை "demo_mongodb_join.js" என்ற கோப்பில் சேமித்து கோப்பை இயக்கவும்:

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

இது உங்களுக்கு இந்த முடிவைக் கொடுக்கும்:

[
  { "_id": 1, "product_id": 154, "status": 1, "orderdetails": [
    { "_id": 154, "name": "Chocolate Heaven" } ]
  }
]

மேலே உள்ள முடிவில் இருந்து நீங்கள் பார்க்க முடியும் என, products தொகுப்பிலிருந்து பொருந்தும் ஆவணம் orders தொகுப்பில் ஒரு வரிசையாக சேர்க்கப்பட்டுள்ளது.

$lookup அளவுருக்கள்

அளவுரு விளக்கம் எடுத்துக்காட்டு
from இணைக்க வேண்டிய தொகுப்பின் பெயர் from: 'products'
localField தற்போதைய தொகுப்பில் இருந்து புலம் localField: 'product_id'
foreignField இணைக்கும் தொகுப்பில் இருந்து புலம் foreignField: '_id'
as இணைக்கப்பட்ட தரவு சேமிக்கப்படும் புலத்தின் பெயர் as: 'orderdetails'

பயிற்சி

MongoDB இல், நீங்கள் ஒரு இடது வெளிப்புற இணைப்பை aggregate() உடன் ______ நிலையைப் பயன்படுத்தி செய்யலாம்.

$join
✗ தவறு! "$join" என்பது MongoDB இல் ஒரு செல்லுபடியாகும் ஆபரேட்டர் அல்ல
$merge
✗ தவறு! "$merge" ஆபரேட்டர் தொகுப்புகளை இணைக்க பயன்படுகிறது, ஆவணங்களை இணைக்க அல்ல
$lookup
✓ சரி! "$lookup" நிலை MongoDB இல் aggregate() உடன் இடது வெளிப்புற இணைப்புகளை செய்ய பயன்படும் சரியான ஆபரேட்டராகும்
$combine
✗ தவறு! "$combine" என்பது MongoDB இல் ஒரு செல்லுபடியாகும் ஆபரேட்டர் அல்ல