해당 게시물은 Node.js를 기반으로한 MongoDB 사용방법에 대한 글 입니다.
각 개발 언어에 따라 사용방법이 상이하니 다른 개발언어를 사용하시는 분들은
https://www.mongodb.com/docs/drivers/ 에 접속하여 사용하시는 개발언어를 선택하여 기본 사용방법에 대해 숙지하시거나 다른 글을 참고하시길 바랍니다.
1. MongoDB 기본 셋팅
1) 새로운 프로젝트를 만드시고 MongoDB 설치에 앞서 모듈셋팅을 위해 터미널 창에 npm inin -y 명령어를 통해 package.json 를 준비해줍니다,
2) 그 다음 터미널 창에서 npm install mongodb 명령어를 통해 몽고디비를 설치해줍니다.
2. Node.js 애플리케이션 만들기
프로젝트 디렉터리에 호출된 애플리케이션을 포함할 app.js 파일을 만듭니다.
그리고 MongoClient 를 통해 uri 를 연결하여 Mongodb를 연결해줍니다.
const { MongoClient } = require("mongodb");
const uri = `mongodb://localhost:27017`;
const client = new MongoClient(uri);
새로운 db를 생성하기 위해 client.db('firstDB') 코드를 통해 새로운 db를 생성하고
그 안에 데이터별로 저장하는 단위를 달리해주기 위해 database.collection('users') 로 users라는 컬렉션을 생성해주고
user에 대한 데이터는 users 컬렉션에 저장해줍니다.
async function run () {
const database = client.db('firstDB');
const users = database.collection('users');
}
3. MongoDB 에서 CRUD
1) Create (Insert)
새로운 문서를 컬렉션에 추가합니다.
1개 추가 : db.collection.insertOne({ 필드1: 값1, 필드2: 값2, ... })를 사용하여 하나의 문서를 추가합니다.
const userData = await users.insertOne({name : '홍길동', age : 17});
여러개 추가 : db.collection.insertMany([{ 문서1 }, { 문서2 }, ...])를 사용하여 여러 문서를 추가할 수 있습니다.
const userList = [{name : '철수', age : 30}, {name: '영희', age : 25}]
const userListResult = await users.insertMany(userList);
2) Read (Find)
컬렉션에서 문서를 조회합니다.
db.collection.find({ 조건 })를 사용하여 조건에 맞는 문서를 조회합니다.
필요한 필드만 조회하려면 db.collection.find({ 조건 }, { 필드1: 1, 필드2: 1, ... })를 사용합니다.
하나의 데이터만 READ
const findUser = await users.findOne({name : '홍길동'});
모든 데이터 READ
const findUser = await users.find({}).toArray();
조건에 부합하는 1개의 데이터 READ : 제일 먼저 조건에 부합하는 데이터 출력
const findUser = await users.findOne({ age: { $gt : 20} });
조건에 부합하는 모든 데이터 READ : Query Selectors 에 따라 부합되는 데이터 조회
const findUser = await users.find({ age: { $gt : 20} }).toArray();
MongoDB 의 쿼리 언어를 통해 간단한 명령부터 복잡한 쿼리까지 다양한 방법으로 MongoDB 문서를 조회할 수 있습니다.
- 모든 문서 조회: {} 필터를 사용하여 컬렉션의 모든 문서를 조회합니다.
- 등호 조건: { status: "D" } 필터를 사용하여 status가 "D"인 문서를 조회합니다.
- 쿼리 연산자 사용: { status: { $in: ["A", "D"] } } 필터를 사용하여 status가 “A” 또는 "D"인 문서를 조회합니다.
- AND 조건: { status: "A", qty: { $lt: 30 } } 필터를 사용하여 status가 "A"이고 qty가 30보다 작은 문서를 조회합니다.
- OR 조건: { $or: [{ status: 'A' }, { qty: { $lt: 30 } }] } 필터를 사용하여 status가 "A"이거나 qty가 30보다 작은 문서를 조회합니다.
더 많은 쿼리 연산자와 예시는 여기에서 확인하실 수 있습니다.
Query and Projection Operators - MongoDB Manual v7.0
For details on a specific operator, including syntax and examples, click on the link to the operator's reference page.
www.mongodb.com
3. Update (Update)
기존 문서를 수정합니다.
db.collection.updateOne({ 조건 }, { $set: { 필드: 값 } })를 사용하여 하나의 문서를 업데이트합니다.
db.collection.updateMany({ 조건 }, { $set: { 필드: 값 } })를 사용하여 여러 문서를 업데이트할 수 있습니다.
하나의 데이터 UPDATE
const updateUser = await users.updateOne(
{ name : '철수' },
{ $set : { age : 18} }
);
여러 데이터 UPDATE
const updateUser = await users.updateMany(
{},
{ $set : { age : 18} }
);
4. Delete (Remove)
기존 문서를 삭제합니다.
db.collection.deleteOne({ 조건 })를 사용하여 하나의 문서를 삭제합니다.
db.collection.deleteMany({ 조건 })를 사용하여 여러 문서를 삭제할 수 있습니다.
조건에 부합하는 하나의 데이터 DELETE
const deleteUser = await users.deleteOne({age :{$gt : '20'}})
조건에 부합하는 여러개 데이터 DELETE
const deleteUsers = await users.deleteMany({age :{$gt : '20'}})
'MongoDB' 카테고리의 다른 글
데이터베이스 : Mongoose 설치 및 기본 사용방법 (0) | 2024.05.22 |
---|---|
데이터베이스 : MongoDB 설치 (0) | 2024.05.21 |