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 등의 조건을 걸 수 있다.
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( {조건}, { 컬럼: 데이터 } )
'Node.js' 카테고리의 다른 글
Socket.io - 정의, 설치, 작동 원리, 특징 (0) | 2025.02.03 |
---|---|
데이터베이스 - Mongoose (0) | 2025.01.20 |
데이터베이스 - MongoDB 데이터베이스 및 컬렉션 생성 (0) | 2025.01.18 |
데이터베이스 - NoSQL (MongoDB) (0) | 2025.01.17 |
데이터베이스 - Sequelize 쿼리 정리 (0) | 2025.01.17 |