본문 바로가기
개발/Node.js

[Node.js] 익스프레스에서 몽고디비 사용법 2 - 문서 추가와 조회

by 윤호 2021. 1. 5.

저번 몽고디비 사용법 1에 이어서 알아보겠습니다.

목표

  • 몽고 셸에서 문서 추가와 삽입
  • 익스프레스에서 문서 추가와 삽입

몽고 셸에서 문서 추가와 조회

먼저 간단하게 몽고디비에서 데이터베이스(DB)가 어떻게 구성되는지 알아보겠습니다.

몽고디비의 DB는 NoSQL 방식의 DB로 컬렉션(collection)의 집합입니다. 컬렉션은 많은 문서(document) 객체들로 이뤄져있습니다. 문서 객체에는 하나의 객체에 대한 정보들이 있습니다. 이번 글에서 DB의 추가와 검색은 한 컬렉션에서 문서를 추가하고 검색하는 것을 의미합니다.

% use local // local 데이터베시스를 사용
% db.users.insert({name:'짱구', age:5}) // users 컬렉션에 name과 age 속성을 갖는 문서 추가
% db.users.find() // users 컬렉션에 모든 문서 조회

몽고 셸에서 문서 추가와 조회 위해 cmd 창에서 다음 명령어로 저번 시간에 생성했던 local DB를 실행합니다.

% mongod --dbpath /Users/user/database/local

실행된 상태로 두고 새로운 cmd 창을 열어 % mongo 명령어로 몽고 셸을 실행합니다.

몽고 셸을 실행한 상태

다음 명령어를 입력하여 local DB에 문서 생성과 조회를 할 수 있습니다.

% use local // local 데이터베시스를 사용
% db.users.insert({name:'짱구', age:5}) // users 컬렉션에 name과 age 속성을 갖는 문서 추가
% db.users.find() // users 컬렉션에 모든 문서 조회

문서를 추가할 때, users 컬렉션이 없을 경우 users 컬렉션을 추가하고 거기에다 문서를 추가합니다. users 컬렉션이 이미 있을 경우엔 해당 컬렉션에 바로 문서를 추가합니니다.

 

find 명령어는 인자로 여러 조건을 줄 수 있습니다.

위와 같이 특정한 문서를 조회할 수 있습니다. 더 다양한 조건을 확인하고 싶다면 다음 블로그를 참조하면 좋을 것 같습니다.

[MongoDB] 강좌 3편 Document Query(조회) – find() 메소드

익스프레스에서 문서 추가와 삽입

저번글에 이어서 익스프레스에서 데이터베이스 연결 후 문서 추가와 조회를 알아보겠습니다.

 

저번 글에서 local DB 객체를 database 변수에 할당했었습니다.이 database 변수를 참조하여 추가와 조회를 할 수 있습니다.

var users = database.collection('users'); // users 컬렉션을 참조

users.insertMany([{'name':'짱구', 'age':5}], function(err, result){
        if (err){
            callback(err, null);
            console.log('users 컬렉션에 문서 추가 실패');
            return;
        }
        console.log('users 컬렉션에 문서 추가 성공');
    });
var users = database.collection('users'); // users 컬렉션을 참조

users.find([{'name':'짱구'}], function(err, docs){
        if (err){
            callback(err, null);
            console.log('users 컬렉션에 name이 짱구인 문서 조회 실패');
            return;
        }
        
        if(docs.length>0){
            console.log('name이 짱구인 사용자 조회 성공');
            callback(null, docs);
        }else{
            console.log('name이 짱구인 사용자 조회 실패');
            callback(null, null);
        }
    });

 

'Do it! Node.js 프로그래밍'을 공부한 내용입니다.

댓글