JavaScript로 MongoDB를 개발하는 방법

Javascriptlo Mongodbleul Gaebalhaneun Bangbeob



웹 개발자가 MongoDB를 사용하는 가장 중요한 이점 중 하나는 JavaScript와의 탁월한 통합입니다. MongoDB는 개발자가 JavaScript 코드를 사용하여 데이터베이스와 직접 상호 작용할 수 있도록 하는 기본 JavaScript 드라이버를 제공합니다. 이제 JavaScript로 MongoDB 애플리케이션 생성을 시작하기 전에 시스템에 MongoDB Node.js 드라이버를 설치해야 합니다. 이를 위해서는 다음 명령을 사용해야 합니다:

npm과 mongodb

드라이버를 사용하면 JavaScript 코드에서 MongoDB와 상호 작용하고 데이터베이스 연결, 데이터 삽입, 데이터 쿼리 및 데이터 업데이트와 같은 다양한 작업을 수행할 수 있습니다.







예 1: JavaScript를 사용하여 MongoDB 연결 개발

앞서 설명한 대로 'npm' 모듈을 사용하여 수행할 수 있는 JavaScript를 사용하여 MongoDB 서버와의 연결을 설정하는 것부터 시작합니다.



const { 몽고클라이언트 } = 필요하다 ( '몽고디비' ) ;

const URL = 'mongodb:// 127.0.0.1:27017 ' ;
const 고객 = 새로운 몽고클라이언트 ( URL ) ;
const 데이터베이스 이름 = '마이DB' ;

비동기 기능 기본 ( ) {
클라이언트를 기다리고 있습니다. 연결하다 ( ) ;
콘솔. 통나무 ( '서버에 성공적으로 연결되었습니다' ) ;
const 디비 = 고객. 디비 ( 데이터베이스 이름 ) ;
const 수집 = db. 수집 ( '명' ) ;

반품 '완료.' ;
}

기본 ( )
. 그 다음에 ( 콘솔. 통나무 )
. 잡다 ( 콘솔. 오류 )
. 마지막으로 ( ( ) => 고객. 닫다 ( ) ) ;

먼저 'File.js' 파일의 'mongodb' 모듈에서 필수 MongoClient를 가져옵니다. 그런 다음 MongoDB 서버에 대한 연결 URL(url)을 정의하고 지정된 URL을 사용하여 새 MongoClient 인스턴스를 생성합니다.



그런 다음 연결에 사용할 MongoDB 데이터베이스 이름(dbName)을 지정합니다. 다음으로, 비동기식 main() 함수는 MongoDB 서버의 주요 작업을 처리합니다. 여기서는 wait client.connect()를 사용하여 MongoDB 서버에 연결합니다. 이는 비동기 작업이므로 연결이 성공적으로 설정될 때까지 함수가 일시 중지됩니다. 연결이 성공적으로 이루어지면 프롬프트에 나타나는 메시지를 볼 수 있습니다. client.db(dbName)를 사용하여 'dbName'에 지정된 이름을 가진 데이터베이스에 대한 참조를 얻습니다.





그런 다음 db.collection('Persons')을 사용하여 'Persons'라는 컬렉션에 대한 참조를 얻습니다. main() 함수를 정의한 후 main()을 호출하여 작업을 실행합니다. main() 함수가 성공적으로 확인되면 .then(console.log)을 사용하여 결과(이 경우 'done' 문자열)를 인쇄합니다. 실행 중 오류가 발생하면 오류를 포착하고 .catch(console.error)를 사용하여 인쇄합니다. 마지막으로 .finally(() => client.close())를 사용하여 MongoDB 클라이언트 연결이 닫혔는지 확인합니다.

따라서 프롬프트에는 JavaScript 파일에서 MongoDB 연결이 설정된 메시지가 표시됩니다.



예 2: JavaScript를 사용하여 MongoDB 문서 삽입

이제 MongoDB 서버와의 연결이 설정되었으므로 JavaScript로 MongoDB 쿼리를 사용할 수 있습니다. 여기서는 단일 문서를 삽입하기 위해 삽입 쿼리를 적용합니다.

const { 몽고클라이언트 } = 필요하다 ( '몽고디비' ) ;

const URL = 'mongodb:// 127.0.0.1:27017 ' ;
const 고객 = 새로운 몽고클라이언트 ( URL ) ;
const 데이터베이스 이름 = '마이DB' ;

비동기 기능 기본 ( ) {
const 디비 = 고객. 디비 ( 데이터베이스 이름 ) ;
const 수집 = db. 수집 ( '사용자' ) ;
const insertDoc =
수집을 기다립니다. insertOne ( { 이름 : '앤드류' , 나이 : 23 } ) ;
콘솔. 통나무 ( '문서 삽입 =' , insertDoc ) ;
반품 '완료.' ;
}

기본 ( )
. 그 다음에 ( 콘솔. 통나무 )
. 잡다 ( 콘솔. 오류 )
. 마지막으로 ( ( ) => 고객. 닫다 ( ) ) ;

main() 함수를 데이터베이스 삽입 작업을 수행하는 비동기 함수로 정의합니다. 그 안에서 MongoClient 인스턴스와 URL을 사용하여 MongoDB 서버에 연결합니다. 그런 다음 client.db(dbName)를 사용하여 지정된 데이터베이스(MyDB)에 액세스하고 db.collection('users')를 사용하여 데이터베이스에서 'users' 컬렉션을 가져옵니다.

그런 다음 collection.insertOne()을 사용하여 필드 이름이 'Andrew'이고 나이가 23인 문서를 'users' 컬렉션에 삽입합니다. insertOne() 메서드는 삽입 결과로 해결되는 Promise를 반환합니다. 추가된 문서는 console.log를 사용하여 표시됩니다. 마지막으로 MongoDB 클라이언트 연결을 닫습니다.

MongoDB 데이터베이스 컬렉션에 삽입된 문서는 다음 출력과 같이 성공적으로 삽입되었습니다.

예 3: JavaScript로 MongoDB 문서 찾기

마찬가지로, JavaScript를 사용하여 MongoDB의 '찾기' 쿼리를 적용하여 이전 예제에서 생성된 컬렉션에서 문서를 찾을 수 있습니다.

const { 몽고클라이언트 } = 필요하다 ( '몽고디비' ) ;

const URL = 'mongodb:// 127.0.0.1:27017 ' ;
const 고객 = 새로운 몽고클라이언트 ( URL ) ;
const 데이터베이스 이름 = '마이DB' ;

비동기 기능 기본 ( ) {
const 디비 = 고객. 디비 ( 데이터베이스 이름 ) ;
const 수집 = db. 수집 ( '사용자' ) ;
const 찾기쿼리 = { 이름 : '앤드류' } ;
const findDoc = 수집을 기다립니다. 찾다 ( 찾기쿼리 ) . toArray ( ) ;
콘솔. 통나무 ( '문서 =' , findDoc ) ;
}

기본 ( )
. 그 다음에 ( 콘솔. 통나무 )
. 잡다 ( 콘솔. 오류 )
. 마지막으로 ( ( ) => 고객. 닫다 ( ) ) ;

먼저 생성된 MongoClient 인스턴스와 지정된 URL을 사용하여 MongoDB 서버에 연결하는 기본 기능의 데모부터 시작합니다. 그런 다음 client.db(dbName)를 사용하여 MyDB 데이터베이스에 액세스합니다. 여기서 dbName은 이전에 정의된 데이터베이스 이름입니다.

다음으로, db.collection('users')를 사용하여 데이터베이스에서 'users' 컬렉션에 대한 참조를 얻습니다. 검색할 문서의 이름 필드가 'Andrew'와 동일해야 함을 지정하는 'findQuery'라는 쿼리 개체가 생성됩니다. 그런 다음 일치하는 문서에 커서를 반환하는 collection.find(findQuery)를 사용하여 'users' 컬렉션에 대해 'find' 쿼리를 수행합니다.

계속하기 전에 결과가 해결되었는지 확인하기 위해 collection.find() 앞에 'await' 키워드가 사용됩니다. 찾기 작업의 결과는 toArray()를 사용하여 문서 배열로 변환되고, 찾은 문서는 'findDoc' 변수에 저장됩니다. 그런 다음 문서는 console.log를 사용하여 콘솔에 기록됩니다.

결과적으로 MongoDB 컬렉션에서 발견된 문서가 실행 시 표시됩니다.

예제 4: JavaScript로 MongoDB 문서 업데이트

다음으로 JavaScript에서 '업데이트' 작업을 수행하여 MongoDB 컬렉션의 지정된 문서를 업데이트합니다.

const { 몽고클라이언트 } = 필요하다 ( '몽고디비' ) ;

const URL = 'mongodb:// 127.0.0.1:27017 ' ;
const 고객 = 새로운 몽고클라이언트 ( URL ) ;
const 데이터베이스 이름 = '마이DB' ;

비동기 기능 기본 ( ) {
const 디비 = 고객. 디비 ( 데이터베이스 이름 ) ;
const 수집 = db. 수집 ( '사용자' ) ;
const 업데이트쿼리 = { 이름 : '앤드류' } ;
const 업데이트이름 = { $세트 : { 이름 : '그 자신' } } ;
const 업데이트결과 = 수집을 기다립니다. 업데이트원 ( 업데이트쿼리 , 업데이트이름 ) ;
콘솔. 통나무 ( '업데이트된 문서 =' , 업데이트결과 ) ;
반품 '완료' ;
}

기본 ( )
. 그 다음에 ( 콘솔. 통나무 )
. 잡다 ( 콘솔. 오류 )
. 마지막으로 ( ( ) => 고객. 닫다 ( ) ) ;

'users' 컬렉션의 문서를 업데이트하려면 main() 함수를 호출합니다. 그런 다음 이름 필드가 'Andrew'와 동일한 문서를 찾기 위해 { name: 'Andrew' }를 사용하여 '업데이트' 쿼리를 준비합니다. 그런 다음 { $set: { name: 'Sam' } }을 사용하여 일치하는 문서의 이름 필드를 'Sam'으로 설정합니다.

collection.updateOne(updateQuery, updateName)을 사용하여 업데이트를 수행하기 위한 'update' 쿼리와 'update' 작업을 정의합니다. updateOne() 메서드는 '업데이트' 쿼리와 일치하는 첫 번째 문서를 업데이트하고 업데이트 결과를 나타내는 객체를 반환합니다. 'updateResult' 변수에는 업데이트 작업의 결과가 포함됩니다.

다음 출력 화면에는 업데이트된 쿼리 결과가 표시됩니다.

예 5: JavaScript를 사용하여 MongoDB 문서 삭제

마지막으로 JavaScript 내에서 MongoDB의 이전 문서를 삭제하기 위해 MongoDB의 삭제 메소드를 사용합니다.

const { 몽고클라이언트 } = 필요하다 ( '몽고디비' ) ;

const URL = 'mongodb:// 127.0.0.1:27017 ' ;
const 고객 = 새로운 몽고클라이언트 ( URL ) ;
const 데이터베이스 이름 = '마이DB' ;

비동기 기능 기본 ( ) {
const 디비 = 고객. 디비 ( 데이터베이스 이름 ) ;
const 수집 = db. 수집 ( '사용자' ) ;
const 삭제쿼리 = { 이름 : '그 자신' } ;
const 삭제결과 = 수집을 기다립니다. 삭제원 ( 삭제쿼리 ) ;
콘솔. 통나무 ( '삭제된 문서 =' , 삭제결과 ) ;
반품 '완료' ;
}

기본 ( )
. 그 다음에 ( 콘솔. 통나무 )
. 잡다 ( 콘솔. 오류 )
. 마지막으로 ( ( ) => 고객. 닫다 ( ) ) ;

삭제할 문서에 대한 기준을 지정하는 'deleteQuery'라는 '삭제' 쿼리 개체를 만듭니다. 이 경우 이름 필드가 'Sam'과 동일한 문서를 검색합니다. 삭제 쿼리를 준비한 후 컬렉션 개체의 deleteOne() 메서드를 사용하여 실제 삭제 작업을 적용합니다.

쿼리에서 지정된 기준을 충족하는 첫 번째 일치 문서를 삭제하는 'deleteOne'에 'deleteQuery'를 인수로 전달합니다. 'deleteResult' 변수는 삭제 작업의 결과를 보유합니다.

지정된 문서는 'javascript' 파일을 사용하여 MongoDB 컬렉션에서 삭제됩니다.

결론

이제 MongoDB Node.js 드라이버를 통해 JavaScript와 함께 MongoDB를 사용하는 방법에 대한 기본적인 이해를 얻었습니다. JavaScript를 사용한 문서 연결부터 삭제까지 다양한 Mongo DB 작업을 통해 모든 것을 시연했습니다. 여기에서 더 복잡한 애플리케이션을 구축하고 필요에 따라 MongoDB를 Node.js 프로젝트에 통합할 수 있습니다.