본문 바로가기
Node.js

데이터베이스 - MongoDB CRUD 작업하기

by Programmer.Junny 2025. 1. 20.

1. CREATE (생성)

1.1. insertOne (단일 데이터 삽입)

db.[컬렉션명].insertOne( { 컬럼:데이터 ... } )
db.users.insertOne( { name: 'zero', age: 24, married: false, comment: '안녕하세요. 코멘트입니다.', createAt: new Date() })

위와 같이 데이터 한개를 추가할 수 있다.

{
  acknowledged: true,
  insertedId: ObjectId('678de99c45b9a8b7ace65bbe')
}

성공 시 위와 같은 메세지가 뜨며 데이터를 리로드하면 users 컬렉션내에 해당 데이터가 보여진다.

1.2. insertMany (다중 데이터 삽입)

db.[컬렉션명].insertMany( [ { 컬럼:데이터 ... }, { 컬럼:데이터 ... } ] )
db.users.insertMany( [{
name: 'test',
age: 42,
married: false,
comment: 'insertMany 테스트용'
}, {
name: 'junny',
age: 50000,
married : true,
comment: '안녕하세요. junny입니다.'
}])

위와 같이 'insertMany' 내에 배열을 사용하면 다중 데이터를 삽입할 수 있다. 

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId('678dec1545b9a8b7ace65bc0'),
    '1': ObjectId('678dec1545b9a8b7ace65bc1')
  }
}

2. READ (데이터 조회)

2.1. find (모든 데이터 조회 OR 특정 데이터들 조회)

db.[컬렉션명].find()

find() 명령어로 해당 컬렉션의 모든 데이터를 조회할 수 있다.

db.[컬렉션명].find( <query>, <projection>, <options> )

또한 find로 특정 데이터를 가져올 수 있다.

find의 첫 번째 인수로 조회 조건 입력 (WHERE)

db.users.find({ $or: [{age: {$gt: 30}}, {married: true}]});

$or 조건이나 $gt 등의 조건을 걸 수 있다.

or 조건 사용
and 조건 사용

find의 두 번째 옵션 <projection> 으로 SELECT 처럼 사용할 수 있다.

db.users.find({}, {_id: 0, name: 1, married: 1, comment: 1})

참고로 id 필드는 위와 같이 _id: 0 으로 해야 명시적으로 id값을 나타나지 않게 할 수 있으며, 그 외의 값은 0을 입력하지 않으면 알아서 제외된다.

2.2. findOne (단일 데이터 조회)

db.[컬렉션명].findOne( <query>, <projection>, <options> )

findOne은 일치하는 데이터 중 가장 첫 번째 데이터만을 가져온다.

참고로 Compass에서 해당 컬렉션 내에 위와 같이 쿼리를 입력할 수 있는 간단한 입력창이 있다. 이것을 이용하면 굉장히 편리하게 사용이 가능하다.

3. UPDATE (데이터 수정)

db.[컬렉션명].updateOne({ 조건 }, { $set: { 컬럼: 데이터 } })

위와 같이 기존 데이터를 변경하거나, 데이터가 없는 경우 추가해주거나 등을 진행할 수 있으며

updateMany와 같은 명령어로 다중 데이터를 수정할 수 있다.

4. DELETE (데이터 삭제)

db.[컬렉션명].deleteOne( {조건}, { 컬럼: 데이터 } )

최근댓글

최근글

skin by © 2024 ttuttak