목차
2개 collection 존재 가정
collection 결합
※ MongoDB는 관계형 DB 아니지만, $lookup 스테이지 활용해 조인 가능.
2개 collection 존재 가정
※ hz_member 컬렉션.
[
{ _id: 1, mb_name: 'AAA', level_id: 1},
{ _id: 2, mb_name: 'BBB', level_id: 2},
{ _id: 3, mb_name: 'CCC', level_id: 3}
]
※ hz_level 컬렉션.
[
{ _id: 1, lv_name: '손님' },
{ _id: 2, lv_name: '회원' },
{ _id: 3, lv_name: '관리자' }
]
※ 컬렉션 생성 : https://homzzang.com/b/njs-26
※ 데이터 입력 : https://homzzang.com/b/njs-27
collection 결합
1. C:\User\사용자명\hz.js 생성.
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
const options = {useUnifiedTopology: true};
MongoClient.connect(url, options, function(err, db) {
if (err) throw err;
var dbo = db.db("hz");
dbo.collection('hz_member ').aggregate([
{ $lookup:
{
from: 'hz_level ',
localField: 'level_id',
foreignField: '_id',
as: 'level_info'
}
}
]) .toArray(function(err, res) {
if (err) throw err;
console.log(JSON.stringify(res));
db.close();
});
});
2. CMD 모드 창에서, 아래 명령어 실행.
C:\User\사용자명>node hz.js
[결과값]
[
{"_id":1,"mb_name":"AAA","level_id":1,"level_info":[{"_id":1,"lv_name":"손님"}]},
{"_id":2,"mb_name":"BBB","level_id":2,"level_info":[{"_id":2,"lv_name":"회원"}]},
{"_id":3,"mb_name":"CCC","level_id":3,"level_info":[{"_id":3,"lv_name":"관리자"}]}
]
주소 복사
랜덤 이동
최신댓글