Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 각 직원 급여를 10% 인상하는 방법

MongoDB에서 여러 직원의 급여를 한 번에 10% 인상하려면 $mul 연산자multi 옵션을 활용하면 됩니다. 이 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.

1단계: 샘플 컬렉션 생성

먼저 insertOne() 메서드를 사용하여 문서가 포함된 컬렉션을 생성합니다.

> db.demo417.insertOne({"EmployeeName":"Chris","EmployeeSalary":500});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e723ebbb912067e57771ae4")
}
> db.demo417.insertOne({"EmployeeName":"Mike","EmployeeSalary":1000});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e723ed7b912067e57771ae5")
}

2단계: 저장된 문서 확인

find() 메서드를 사용하여 컬렉션의 모든 문서를 조회합니다.

> db.demo417.find();

위 명령은 다음과 같은 결과를 출력합니다.

{ "_id" : ObjectId("5e723ebbb912067e57771ae4"), "EmployeeName" : "Chris", "EmployeeSalary" : 500 }
{ "_id" : ObjectId("5e723ed7b912067e57771ae5"), "EmployeeName" : "Mike", "EmployeeSalary" : 1000 }

3단계: 급여 10% 인상 쿼리 실행

다음은 각 직원의 급여 필드 값을 10% 증가시키는 업데이트 쿼리입니다.

> db.demo417.update({ "EmployeeName": { $in: ["Chris", "Mike"] } }, { $mul: { EmployeeSalary: 1.1 }},{multi:true});
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

쿼리 핵심 요소 설명

  • $mul 연산자: 필드 값을 지정한 숫자와 곱합니다. 10% 인상은 현재 값에 1.1을 곱하는 것과 같습니다.
  • $in 연산자: 이름이 'Chris' 또는 'Mike'인 문서를 조건으로 매칭합니다.
  • multi:true 옵션: 조건에 일치하는 모든 문서를 한 번에 업데이트합니다. 이 옵션이 없으면 첫 번째로 일치하는 문서만 수정됩니다.

4단계: 업데이트 결과 확인

다시 find() 메서드로 모든 문서를 조회합니다.

> db.demo417.find();

급여가 정상적으로 10% 인상된 것을 확인할 수 있습니다.

{ "_id" : ObjectId("5e723ebbb912067e57771ae4"), "EmployeeName" : "Chris", "EmployeeSalary" : 550 }
{ "_id" : ObjectId("5e723ed7b912067e57771ae5"), "EmployeeName" : "Mike", "EmployeeSalary" : 1100 }

Chris의 급여는 500에서 550으로, Mike의 급여는 1000에서 1100으로 변경되었습니다. WriteResult의 nModified 값이 2인 것도 두 개의 문서가 모두 성공적으로 수정되었음을 보여줍니다.