• 회원가입
  • 로그인
  • 구글아이디로 로그인

[mongodb] Node.js - MongoDB Join (콜렉션 결합)

2,058  

목차

  1. 2개 collection 존재 가정
  2. 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":"관리자"}]}

 



분류 제목
basic Node.js - Home
basic Node.js - Intro (소개)
basic Node.js - Start (시작) - 사용 환경 구축
basic Node.js - Modules (모듈)
basic Node.js - HTTP Module (데이터 전송 모듈)
basic Node.js - File System Module (파일 시스템 모듈)
basic Node.js - URL Module (주소 처리 모듈)
basic Node.js - NPM (노드 패키지 관리자)
basic Node.js - Events (이벤트)
basic Node.js - Upload Files (파일 업로드) 2
basic Node.js - Email (이메일 보내기)
mysql Node.js - MySQL 설치・연결 + 쿼리 보내기
mysql Node.js - MySQL Create Database (DB 생성)
mysql Node.js - MySQL Create Table (테이블 생성) ※ Primary key 설정.
mysql Node.js - MySQL Insert Into (데이터 삽입)
mysql Node.js - MySQL Select From (데이터 선택)
mysql Node.js - MySQL Where (조건절)
mysql Node.js - MySQL Order By (정렬 순서)
mysql Node.js - MySQL Delete From (데이터 삭제)
mysql Node.js - MySQL Drop Table (테이블 삭제)
1/4
목록
찾아주셔서 감사합니다. Since 2012