> 데이터 베이스 > 몽고DB > MongoDB에서 인덱스로 배열 요소를 삭제하는 방법은 무엇입니까?

MongoDB에서 인덱스로 배열 요소를 삭제하는 방법은 무엇입니까?

PHPz
풀어 주다: 2023-09-08 12:17:02
앞으로
951명이 탐색했습니다.

如何在 MongoDB 中通过索引删除数组元素?

다음 두 단계를 사용하여 인덱스별로 배열 요소를 제거할 수 있습니다. -

첫 번째 단계는 다음과 같습니다. -

db.yourCollectionName.update({}, {$unset : {"yourArrayFieldName.yourIndexValue" : 1 }});
로그인 후 복사

위 구문에서는 "yourIndexValue" 위치에 null 값이 배치됩니다. 그런 다음 배열 요소에서 제거하려면 배열 필드에서 null 값을 추출해야 합니다.

두 번째 단계는 다음과 같습니다. -

db.yourCollectionName.update({}, {$pull : {"yourArrayFieldName" : null}});
로그인 후 복사

구문을 구현하기 위해 문서가 포함된 컬렉션을 만들어 보겠습니다. 문서를 사용하여 컬렉션을 생성하는 쿼리는 다음과 같습니다.

> db.removeArrayElementByItsIndexDemo.insertOne({"InstructorName":"David",
   "InstructorAge":28,"InstructorSubject":["MongoDB","MySQL","Java","SQL Server","PL/SQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8abbfc6cea1f28b7aa0803")
}
로그인 후 복사

find() 메소드를 사용하여 컬렉션에 있는 모든 문서를 표시합니다. 쿼리는 다음과 같습니다 -

> db.removeArrayElementByItsIndexDemo.find().pretty();
로그인 후 복사
로그인 후 복사

다음은 출력입니다. -

{
   "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
   "InstructorName" : "David",
   "InstructorAge" : 28,
   "InstructorSubject" : [
      "MongoDB",
      "MySQL",
      "Java",
      "SQL Server",
      "PL/SQL"
   ]
}
로그인 후 복사

인덱스별로 배열 요소를 삭제하는 쿼리입니다.

1단계 - 쿼리는 다음과 같습니다. -

> db.removeArrayElementByItsIndexDemo.update({}, {$unset : {"InstructorSubject.2" : 1 }});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
로그인 후 복사

2단계 - 쿼리는 다음과 같습니다. -

> db.removeArrayElementByItsIndexDemo.update({}, {$pull : {"InstructorSubject" : null}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
로그인 후 복사

배열 요소 "Java"가 삭제되었는지 확인해 보겠습니다. 쿼리는 다음과 같습니다 -

> db.removeArrayElementByItsIndexDemo.find().pretty();
로그인 후 복사
로그인 후 복사

다음은 출력입니다. -

{
   "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
   "InstructorName" : "David",
   "InstructorAge" : 28,
   "InstructorSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server",
      "PL/SQL"
   ]
}
로그인 후 복사

샘플 출력을 보면 배열 요소 "Java"가 완전히 제거되었습니다.

위 내용은 MongoDB에서 인덱스로 배열 요소를 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿