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

MongoDB 문서 배열에서 문자열 제거하는 방법 ($pull 연산자 활용)

MongoDB 배열에서 문자열 제거하기

MongoDB에서 문서의 배열에 포함된 특정 문자열을 제거하려면 $pull 연산자를 사용할 수 있습니다. $pull 연산자는 지정한 조건과 일치하는 값을 배열에서 모두 삭제해 주는 업데이트 연산자입니다.

실제 예제를 통해 단계별로 살펴보겠습니다.

1단계: 테스트용 컬렉션 생성

먼저 문자열이 포함된 배열을 가진 문서로 컬렉션을 생성합니다.

> db.removeAStringDemo.insertOne({"Score":[45,67,89,"John",98,99,67]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cda5224b50a6c6dd317adbd")
}

2단계: 생성된 문서 확인

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

> db.removeAStringDemo.find().pretty();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{
   "_id" : ObjectId("5cda5224b50a6c6dd317adbd"),
   "Score" : [
      45,
      67,
      89,
      "John",
      98,
      99,
      67
   ]
}

현재 Score 배열에는 숫자 값들과 함께 "John"이라는 문자열이 섞여 있는 것을 확인할 수 있습니다.

3단계: $pull 연산자로 문자열 제거

이제 $pull 연산자를 사용하여 배열에서 "John" 문자열을 제거합니다.

> db.removeAStringDemo.update( { _id :ObjectId("5cda5224b50a6c6dd317adbd") }, { $pull: { "Score":"John" }});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

실행 결과 nModified : 1이 반환되었으므로, 하나의 문서가 성공적으로 수정되었음을 알 수 있습니다.

4단계: 결과 확인

문서를 다시 조회하여 문자열이 정상적으로 제거되었는지 확인합니다.

> db.removeAStringDemo.find().pretty();

출력 결과는 다음과 같습니다.

{
   "_id" : ObjectId("5cda5224b50a6c6dd317adbd"),
   "Score" : [
      45,
      67,
      89,
      98,
      99,
      67
   ]
}

정리

$pull 연산자는 MongoDB에서 배열 요소를 조건에 따라 손쉽게 제거할 수 있는 강력한 도구입니다. 위 예제처럼 특정 문자열뿐만 아니라 숫자, 객체 등 다양한 타입의 값도 제거할 수 있으며, 조건식을 활용하면 여러 요소를 한 번에 삭제하는 것도 가능합니다.