Mongo에서 콜렉션을 작성하고이 콜렉션에 문서를 추가 한 후을 사용하여 콜렉션에있는 문서의 숫자 필드에 인덱스를 작성합니다. 콜렉션을 삭제하면 콜렉션을 다시 작성해야합니까? 색인?MongoDB에서 컬렉션이 삭제되면 인덱스도 자동으로 삭제됩니까?
답변
짧은 대답 : 예.
인덱스가 컬렉션 드롭에 떨어지고 있습니다. 색인을 다시 만들어야합니다.
컬렉션을 삭제하지 않고 컬렉션에있는 모든 항목을 삭제하려면 db.collection_name.remove({})
을 사용하는 것이 좋습니다. 더 많은 리소스가 필요하지만 색인을 남깁니다. 실제로 모든 색인 데이터를 삭제해야합니다. 그래서 전체 컬렉션을 삭제하고 그 후에 인덱스를 다시 만드는 것이 더 바람직합니다.
의심되는 것처럼 컬렉션을 삭제하면 모든 인덱스가 삭제되므로 컬렉션을 다시 만들 때 (명시 적으로 또는 새 문서를 추가하여 암시 적으로) 컬렉션을 다시 만들 때 필요한 인덱스를 다시 만들어야합니다. _id
의 기본 색인이 자동으로 생성됩니다.
인덱스가 이미 존재하는 경우 동일한 콜렉션에서 ensureIndex()를 여러 번 호출하는 것이 좋습니다. – raffian
해를 끼치 지 마십시오. 경미한 성능 영향을 확인하려는 인덱스가 이미 있는지 확인하십시오. –
나는 10 개의 인덱스가있는 컬렉션에서이 작업을 수행했으며이를 수동으로 다시 만들고 싶지 않았습니다. 당신은 드롭을 수행하고, 몽고 쉘에서 다음과 같은 세 가지 라인으로 인덱스를 다시 만들 수 있습니다 :
var indexes = db.collection.getIndexKeys().splice(1)
db.collection.drop();
indexes.forEach(function(el){ db.collection.ensureIndex(el, {background:true}); })
이 고유 또는 스파 스 인덱스를 처리 할 수있을만큼 똑똑하지 않지만 그 사용에 의해 지원하는 매우 쉽게 될 것이라고 생각 대신에 getIndexes()의 출력 나는 그것을 필요로하지 않았으므로 그것을하지 않았다.
splice (1)는 자동으로 생성되므로 _id의 색인을 제거하기위한 것입니다.
많은 감사하지만,'{background : true}'는 제 인덱스를 지우고, 훌륭하게 작동하지 않습니다. –
- 1. 제약 조건을 삭제할 때 지원 인덱스도 삭제됩니까?
- 2. MySQL 테이블을 삭제하면 해당 테이블의 인덱스도 자동으로 삭제됩니까?
- 3. 테이블이 삭제되면 임시 테이블의 인덱스가 삭제됩니까?
- 4. Riak : 대상이 삭제되면 링크가 해제됩니까?
- 5. 포크로 찍힌 repo가 github에서 삭제되면 포크 repo가 삭제됩니까?
- 6. PHP 변수는 언제 자동으로 삭제됩니까?
- 7. 임시 폴더의 파일이 자동으로 삭제됩니까?
- 8. HABTM 연결에서 자동으로 결합 테이블의 레코드가 삭제됩니까?
- 9. 다른 애플리케이션을 클릭하면 내 애플리케이션이 자동으로 삭제됩니까?
- 10. MongoDB에서 컬렉션이 아닌 레코드의 하위 집합과 구별 할 수 있습니까?
- 11. 설치 파일이 삭제되면 VS 설치 프로젝트가 자동으로 삭제됩니다.
- 12. 생성자에서 예외가 발생하면 객체에 할당 된 메모리가 자동으로 삭제됩니까?
- 13. 핸들이 닫히 자마자 어떤 유형의 파일이 자동으로 삭제됩니까?
- 14. tmux 재정렬 창이 삭제되면 어떻게 작성합니까?
- 15. 공유지 컬렉션이 아닌 컬렉션이 아닌 속성을 제거하십시오.
- 16. 컬렉션이 함수가 아니거나 컬렉션이 백본의 생성자가 아닙니다.
- 17. MongoDB에서 콜렉션 삭제 후 getLastError
- 18. 가비지 컬렉션이
- 19. 컬렉션이 필요합니까?
- 20. mongodb에서 마스터가 다운되었을 때 슬레이브를 자동으로 실행하는 방법은 무엇입니까?
- 21. 배열의 값을 MongoDB에서 업데이트하십시오.
- 22. 앱 업데이트시 파일이 삭제됩니까?
- 23. jQuery UI를로드하면 Google지도가 삭제됩니까?
- 24. 세션이 유지 관리되거나 삭제됩니까?
- 25. 프로젝트의 버튼으로 사각형이 삭제됩니까?
- 26. JavaScript를 입력하면 텍스트가 삭제됩니까?
- 27. NSCachesDirectory의 파일은 언제 삭제됩니까?
- 28. 테이블을 떨어 뜨리면 MySQL - 인덱스가 삭제됩니까?
- 29. MongoDB에서 Map/Reduce를 사용하려면 어떻게해야합니까?
- 30. Android 애플리케이션을 제거해도 구성된 알람이 모두 삭제됩니까?
빈 콜렉션에 색인을 생성 할 수 있습니까? – raffian
가능합니다. 컬렉션을 만들 때 인덱스가 만들어집니다. –
'remove()'는 큰 콜렉션에서 오랜 시간이 걸릴 수 있습니다. 'drop()'은 훨씬 빠르지 만 이미 언급했듯이 모든 인덱스를 제거하는 단점이 있습니다. – dcrosta