다음 두 단계를 사용하여 인덱스별로 배열 요소를 제거할 수 있습니다. -
첫 번째 단계는 다음과 같습니다. -
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!