Node.js를 MongoDB 예제가 포함된 튜토리얼

대부분의 현대 웹 애플리케이션에는 백엔드에 일종의 데이터 저장 시스템이 있습니다. 예를 들어 웹쇼핑 애플리케이션의 경우, 상품 가격 등의 데이터가 데이터베이스에 저장됩니다.

Node js 프레임워크는 관계형(예: Oracle 및 MS SQL Server) 및 비관계형 데이터베이스(예: MongoDB). 이 튜토리얼에서는 Node js 애플리케이션 내에서 데이터베이스를 사용하는 방법을 살펴보겠습니다.

Node.js 및 NoSQL 데이터베이스

수년에 걸쳐 다음과 같은 NoSQL 데이터베이스가 MongoDB 그리고 MySQL 데이터를 저장하는 데이터베이스로 꽤 유명해졌습니다. 모든 유형의 콘텐츠, 특히 모든 유형의 형식을 저장할 수 있는 이러한 데이터베이스의 기능은 이러한 데이터베이스를 유명하게 만듭니다.

Node.js는 두 가지 모두에서 작동할 수 있습니다. MySQL 및 MongoDB 데이터베이스로. 이러한 데이터베이스 중 하나를 사용하려면 노드 패키지 관리자를 사용하여 필요한 모듈을 다운로드하고 사용해야 합니다.

럭셔리 MySQL, 필요한 모듈은 "mysql” 그리고 사용하기 위해 MongoDB 설치해야 하는 필수 모듈은 "Mongoose"입니다.

이 모듈을 사용하면 다음을 수행할 수 있습니다.wing operaNode.js의 기능

  1. 연결 관리 pooling – 여기에서 개수를 지정할 수 있습니다. MySQL Node.js가 유지하고 저장해야 하는 데이터베이스 연결입니다.
  2. 데이터베이스에 대한 연결을 만들고 닫습니다. 두 경우 모두 "create" 및 "close" 연결 메서드가 실행될 때마다 호출할 수 있는 콜백 함수를 제공할 수 있습니다.
  3. 쿼리를 실행하여 각 데이터베이스에서 데이터를 가져와 데이터를 검색할 수 있습니다.
  4. 데이터 삽입, 삭제, 업데이트와 같은 데이터 조작도 이러한 모듈을 통해 수행할 수 있습니다.

나머지 주제에 대해서는 어떻게 작업할 수 있는지 살펴보겠습니다. MongoDB 내의 데이터베이스 Node.js를.

사용 MongoDB 및 Node.js

이전 주제에서 논의한 바와 같이, MongoDB Node.js와 함께 사용되는 가장 인기 있는 데이터베이스 중 하나입니다.

이 장에서 우리는 다음을 보게 될 것입니다.

우리가 다음과 연결을 구축할 수 있는 방법 MongoDB 데이터베이스

정상적인 수행 방법 opera데이터베이스에서 데이터를 읽는 것뿐만 아니라 레코드를 삽입, 삭제, 업데이트하는 작업도 포함됩니다. MongoDB 데이터 베이스.

이 장의 목적을 위해 다음이 있다고 가정해 보겠습니다. MongoDB 데이터가 제자리에 있습니다.

데이터베이스 이름: EmployeeDB

컬렉션 이름: 직원

Documents
{
	{Employeeid : 1, Employee Name : Guru99},
	{Employeeid : 2, Employee Name : Joe},
	{Employeeid : 3, Employee Name : Martin},
}
  1. NPM 모듈 설치

Node 애플리케이션 내에서 Mongo에 액세스하려면 드라이버가 필요합니다. 사용할 수 있는 Mongo 드라이버가 많이 있지만 MongoDB 가장 인기있는 것 중 하나입니다. 설치하려면 MongoDB 모듈에서 아래 명령을 실행하십시오.

npm 설치 mongodb

  1. 연결 생성 및 닫기 MongoDB 데이터 베이스. 아래 코드 조각은 연결을 생성하고 닫는 방법을 보여줍니다. MongoDB 데이터 베이스.

사용 MongoDB 및 Node.js

코드 설명 :

  1. 첫 번째 단계는 require 함수를 통해 수행되는 몽구스 모듈을 포함하는 것입니다. 이 모듈이 설치되면 이 모듈에서 사용할 수 있는 필수 기능을 사용하여 데이터베이스에 대한 연결을 생성할 수 있습니다.
  2. 다음으로 데이터베이스에 대한 연결 문자열을 지정합니다. 연결 문자열에는 3개의 키 값이 전달됩니다.
  • 첫 번째는 'mongodb'는 우리가 mongoDB 데이터 베이스.
  • 다음은 'localhost'입니다. 이는 로컬 시스템의 데이터베이스에 연결한다는 의미입니다.
  • 다음은 'EmployeeDB'이며 이는 우리의 데이터베이스에 정의된 데이터베이스의 이름입니다. MongoDB 데이터 베이스.
  1. 다음 단계는 실제로 데이터베이스에 연결하는 것입니다. 연결 기능은 URL을 가져오고 콜백 기능을 지정하는 기능이 있습니다. 데이터베이스에 대한 연결이 열릴 때 호출됩니다. 이것이 우리에게 기회를 준다unity 데이터베이스 연결이 성공했는지 여부를 알 수 있습니다.
  2. 이 함수에서는 성공적인 연결이 생성되었음을 나타내기 위해 콘솔에 "연결 설정됨"이라는 문자열을 작성합니다.
  3. 마지막으로 db.close 문을 사용하여 연결을 닫습니다.

위 코드가 정상적으로 실행되면 아래와 같이 콘솔에 “Connected”라는 문자열이 기록될 것입니다.

사용 MongoDB 및 Node.js

  1. 데이터 쿼리 MongoDB 데이터베이스 – 사용 MongoDB 드라이버에서 데이터를 가져올 수도 있습니다. MongoDB 데이터베이스. 아래 섹션에서는 드라이버를 사용하여 Employee 컬렉션에서 모든 문서를 가져오는 방법을 보여줍니다. EmployeeDB 데이터베이스에 있습니다. 이것은 우리의 컬렉션입니다 MongoDB 직원과 관련된 모든 문서가 포함된 데이터베이스입니다. 각 문서에는 문서 값을 정의하는 개체 ID, 직원 이름 및 직원 ID가 있습니다.

사용 MongoDB 및 Node.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    var cursor = db.collection('Employee').find();

    cursor.each(function(err, doc) {

        console.log(doc);

    });
});

코드 설명 :

  1. 첫 번째 단계에서는 커서를 생성합니다. 커서는 데이터베이스에서 가져온 다양한 레코드를 가리키는 데 사용되는 포인터입니다. 그런 다음 커서는 데이터베이스의 여러 레코드를 반복하는 데 사용됩니다. 여기서는 데이터베이스에서 가져온 레코드에 대한 포인터를 저장하는 데 사용되는 커서라는 변수 이름. )은 데이터베이스에서 가져온 레코드를 가리킵니다. MongoDb 수집. 또한 레코드를 가져올 'Employee' 컬렉션을 지정하는 기능도 있습니다. find() 함수는 우리가 문서로부터 모든 문서를 검색하길 원함을 지정하기 위해 사용됩니다. MongoDB 수집.
  2. 이제 커서를 반복하고 있으며 커서에 있는 각 문서에 대해 함수를 실행할 것입니다.
  3. 우리의 기능은 단순히 각 문서의 내용을 콘솔에 인쇄하는 것입니다.

노트: - 데이터베이스에서 특정 레코드를 가져오는 것도 가능합니다. find() 함수에 검색 조건을 지정하면 됩니다. 예를 들어 직원 이름이 Guru99인 레코드를 가져오려는 경우 이 명령문은 다음과 같이 작성할 수 있습니다.

var cursor=db.collection('Employee').find({EmployeeName: "guru99"})

위의 코드가 성공적으로 실행되면 다음과 같습니다.wing 출력은 표시됩니다yed 당신의 콘솔에서.

출력:

사용 MongoDB 및 Node.js

출력에서,

  • 컬렉션의 모든 문서가 검색되었음을 명확하게 확인할 수 있습니다. 이는 find() 메소드를 사용하여 가능합니다. mongoDB 연결(db)하고 커서를 사용하여 모든 문서를 반복합니다.
  1. 컬렉션에 문서 삽입 – 에서 제공하는 insertOne 메소드를 사용하여 문서를 컬렉션에 삽입할 수 있습니다. MongoDB 도서관. 아래 코드 조각은 문서를 mongoDB 수집.

사용 MongoDB 및 Node.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').insertOne({
        Employeeid: 4,
        EmployeeName: "NewEmployee"
    });
}); 

코드 설명 :

  1. 여기서는 insertOne 메소드를 사용하고 있습니다. MongoDB Employee 컬렉션에 문서를 삽입하는 라이브러리입니다.
  2. 우리는 문서 드를 지정하고 있습니다tails Employee 컬렉션에 삽입해야 할 내용입니다.

지금 내용을 확인해보면 MongoDB 데이터베이스를 보면 Employeeid가 4이고 EmployeeName이 "NewEmployee"인 레코드가 Employee 컬렉션에 삽입되어 있습니다.

참고 : 레코드가 데이터베이스에 삽입되고 여기에 출력이 표시될 수 없기 때문에 콘솔에는 출력이 표시되지 않습니다.

데이터가 데이터베이스에 제대로 삽입되었는지 확인하려면 다음을 실행해야 합니다.wing 명령 MongoDB

  1. EmployeeDB 사용
  2. db.Employee.find({Employeeid :4 })

첫 번째 문은 EmployeeDb 데이터베이스에 연결되어 있는지 확인합니다. 두 번째 문은 직원 ID가 4인 레코드를 검색합니다.

  1. 컬렉션의 문서 업데이트 – 에서 제공하는 updateOne 메소드를 사용하여 컬렉션에서 문서를 업데이트할 수 있습니다. MongoDB 도서관. 아래 코드 조각은 문서를 업데이트하는 방법을 보여줍니다. mongoDB 수집.

사용 MongoDB 및 Node.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').updateOne({
        "EmployeeName": "NewEmployee"
    }, {
        $set: {
            "EmployeeName": "Mohan"
        }
    });
}); 

코드 설명 :

  1. 여기서는 "updateOne" 메소드를 사용하고 있습니다. MongoDB 문서를 업데이트하는 데 사용되는 라이브러리 mongoDB 수집.
  2. 업데이트해야 할 문서의 검색 기준을 지정하고 있습니다. 우리의 경우 EmployeeName이 "NewEmployee"인 문서를 찾고 싶습니다.
  3. 그런 다음 문서의 EmployeeName 값을 "NewEmployee"에서 "Mohan"으로 설정하려고 합니다.

지금 내용을 확인해보면 MongoDB 데이터베이스를 살펴보면 Employee 컬렉션에서 Employeeid가 4이고 EmployeeName이 "Mohan"인 레코드가 업데이트된 것을 찾을 수 있습니다.

데이터베이스에서 데이터가 제대로 업데이트되었는지 확인하려면 다음을 실행해야 합니다.wing 명령 MongoDB

  1. EmployeeDB 사용
  2. db.Employee.find({Employeeid :4 })

첫 번째 문은 EmployeeDb 데이터베이스에 연결되어 있는지 확인합니다. 두 번째 문은 직원 ID가 4인 레코드를 검색합니다.

  1. 컬렉션에서 문서 삭제 – 컬렉션 내 문서는 에서 제공하는 “deleteOne” 메소드를 이용하여 삭제할 수 있습니다. MongoDB 도서관. 아래 코드 조각은 문서를 삭제하는 방법을 보여줍니다. mongoDB 수집.

사용 MongoDB 및 Node.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').deleteOne(

        {
            "EmployeeName": "Mohan"
        }

    );
}); 

코드 설명 :

  1. 여기서는 "deleteOne" 메소드를 사용하고 있습니다. MongoDB 문서를 삭제하는 데 사용되는 라이브러리 mongoDB 수집.
  2. 삭제해야 할 문서의 검색 기준을 지정하고 있습니다. 우리의 경우 EmployeeName이 "Mohan"인 문서를 찾아서 삭제하려고 합니다.

지금 내용을 확인해보면 MongoDB 데이터베이스를 살펴보면 Employeeid가 4이고 EmployeeName이 "Mohan"인 레코드가 Employee 컬렉션에서 삭제된 것을 볼 수 있습니다.

데이터베이스에서 데이터가 제대로 업데이트되었는지 확인하려면 다음을 실행해야 합니다.wing 명령 MongoDB

  1. EmployeeDB 사용
  2. db.직원.찾기()

첫 번째 문은 EmployeeDb 데이터베이스에 연결되어 있는지 확인합니다. 두 번째 문은 직원 컬렉션의 모든 기록을 검색하고 표시합니다. 여기에서 기록이 삭제되었는지 여부를 확인할 수 있습니다.

Node Express 앱을 구축하는 방법 MongoDB 콘텐츠를 저장하고 제공하기 위해

Express와 Express를 모두 사용하여 애플리케이션 구축 MongoDB 요즘에는 꽤 흔합니다.

함께 작업 할 때 자바 스크립트 웹 기반 애플리케이션의 경우 일반적으로 MEAN 스택이라는 용어가 사용됩니다.

  • MEAN 스택이라는 용어는 웹 애플리케이션을 개발하는 데 사용되는 JavaScript 기반 기술 모음을 나타냅니다.
  • MEAN은 다음의 약어입니다. MongoDB, 익스프레스JS, AngularJS, 그리고 Node.js.

따라서 Node.js와 MongoDB 백엔드 데이터베이스와 상호 작용하는 애플리케이션을 제공하기 위해 협력합니다.

"express"와 "를 어떻게 사용할 수 있는지에 대한 간단한 예를 살펴보겠습니다.MongoDB" 함께. 우리의 예에서는 동일한 Employee 컬렉션을 사용합니다. MongoDB EmployeeDB 데이터베이스.

이제 Express를 통합하여 사용자가 요청할 때 웹 페이지에 데이터를 표시할 것입니다. 애플리케이션이 Node.js에서 실행될 때 URL을 찾아봐야 할 수도 있습니다. http://localhost:3000/Employeeid.

페이지가 시작되면 Employee 컬렉션의 모든 직원 ID가 표시됩니다.yed. 그러면 이를 달성할 수 있는 섹션의 코드 조각을 살펴보겠습니다.

단계 1) 우리 애플리케이션에서 사용해야 하는 모든 라이브러리를 정의합니다. MongoDB 그리고 익스프레스 라이브러리.

다음을 사용하여 Node Express 앱 구축 MongoDB

코드 설명 :

  1. 우리는 애플리케이션에 사용될 'express' 라이브러리를 정의하고 있습니다.
  2. 우리는 'MongoDB' 라이브러리는 우리 애플리케이션에 연결하기 위해 사용될 것입니다. MongoDB 데이터 베이스.
  3. 여기서는 연결할 데이터베이스의 URL을 정의합니다.
  4. 마지막으로 표시해야 하는 직원 ID 컬렉션을 저장하는 데 사용할 문자열을 정의합니다.yed 브라우저에서 later 에.

단계 2) 이 단계에서는 이제 'Employee' 컬렉션의 모든 레코드를 가져와 그에 따라 작업하겠습니다.

다음을 사용하여 Node Express 앱 구축 MongoDB

코드 설명 :

  1. 우리는 'Employeeid'라는 애플리케이션에 대한 경로를 만들고 있습니다. 그래서 누군가가 웹사이트를 탐색할 때마다 http://localhost:3000/Employeeid 우리 애플리케이션에서 이 경로에 대해 정의된 코드 조각이 실행됩니다.
  2. 여기서는 db.collection('Employee').find() 명령을 통해 'Employee' 컬렉션의 모든 레코드를 가져옵니다. 그런 다음 이 컬렉션을 커서라는 변수에 할당합니다. 이 커서 변수를 사용하면 컬렉션의 모든 레코드를 탐색할 수 있습니다.
  3. 이제 우리는 컬렉션의 모든 레코드를 탐색하기 위해cursor.each() 함수를 사용하고 있습니다. 각 레코드에 대해 각 레코드에 액세스할 때 수행할 작업에 대한 코드 조각을 정의하겠습니다.
  4. 마지막으로 반환된 레코드가 null이 아닌 경우 "item.Employeeid" 명령을 통해 직원을 가져오는 것을 확인합니다. 코드의 나머지 부분은 결과를 표시할 수 있는 적절한 HTML 코드를 구성하는 것입니다.yed 브라우저에서 제대로.

단계 3) 이 단계에서는 출력을 웹 페이지로 보내고 애플리케이션이 특정 포트에서 수신 대기하도록 하겠습니다.

다음을 사용하여 Node Express 앱 구축 MongoDB

코드 설명 :

  1. 여기서는 이전 단계에서 구성된 전체 콘텐츠를 웹 페이지로 보냅니다. 'res' 매개변수를 사용하면 응답으로 웹페이지에 콘텐츠를 보낼 수 있습니다.
  2. 우리는 전체 Node.js 애플리케이션이 포트 3000에서 수신 대기하도록 만들고 있습니다.

출력:

다음을 사용하여 Node Express 앱 구축 MongoDB

출력에서,

  • 이는 Employee 컬렉션의 모든 직원 ID가 검색되었음을 분명히 보여줍니다. 이는 우리가 MongoDB 드라이버를 사용하여 데이터베이스에 연결하고 모든 직원 기록을 검색한 다음 "express"를 사용하여 기록을 표시했습니다.

참조용 코드는 다음과 같습니다.

var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";

app.route('/Employeeid').get(function(req, res)

    {
        MongoClient.connect(url, function(err, db) {
            var cursor = db.collection('Employee').find();
            //noinspection JSDeprecatedSymbols
            cursor.each(function(err, item) {

                if (item != null) {
                    str = str + "   Employee id  " + item.Employeeid + "</br>";
                }
            });
            res.send(str);
            db.close();
        });
    });

var server = app.listen(3000, function() {}); 

참고 : cursor.each는 버전에 따라 더 이상 사용되지 않을 수 있습니다. MongoDB 운전사. //noinspection JSDeprecatedSymbols를 커서.each 앞에 추가하여 문제를 피할 수 있습니다. 또는 forEach를 사용할 수도 있습니다. 다음은 forEach를 사용하는 샘플 코드입니다.

var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";

app.route('/Employeeid').get(function(req, res) {
   MongoClient.connect(url, function(err, db) {
       var collection = db.collection('Employee');
       var cursor = collection.find({});
       str = "";
       cursor.forEach(function(item) {
           if (item != null) {
                    str = str + "    Employee id  " + item.Employeeid + "</br>";
                }
       }, function(err) {
           res.send(err);
           db.close();
          }
       );
   });
});
var server = app.listen(8080, function() {});

요약

  • Node.js는 다음과 함께 사용됩니다. NoSQL 많은 현대 웹 애플리케이션을 구축하기 위한 데이터베이스입니다. 사용되는 일반적인 데이터베이스 중 일부는 다음과 같습니다. MySQL 및 MongoDB.
  • 작업에 사용되는 공통 모듈 중 하나 MongoDB 데이터베이스는 '라는 모듈입니다.MongoDB.' 이 모듈은 Node 패키지 관리자를 통해 설치됩니다.
  • 와 더불어 MongoDB 모듈을 사용하면 컬렉션의 레코드를 쿼리하고 일반적인 업데이트, 삭제 및 삽입을 수행할 수 있습니다. opera.
  • 마지막으로 현대적인 관행 중 하나는 Express 프레임워크를 다음과 함께 사용하는 것입니다. MongoDB 최신 애플리케이션을 제공합니다. Express 프레임워크는 MongoDB 드라이버를 실행하고 이에 따라 웹 페이지에서 사용자에게 데이터를 표시합니다.