그저 내가 되었고
🌱mongoDB:: deleteMany&이후 용량 확보+속도 향상 본문
╰( ・ ᗜ ・ )╯모든 다큐먼트 삭제
join을 써야지 이런게 가능할 줄 알았는데.. 그래서 몽고db는 안될 줄 알았는데 되다니..!!!! 신기하다.
몽고db를 너무 무시했던 것 같다,,,,,,
- 기본 문법:
db.users.deleteMany({});
users 컬렉션의 모든 도큐먼트를 삭제하는 명령.
٩(●˙▿˙●)۶ 조건에 일치하는 모든 도큐먼트 삭제
- 기본 문법:
db.users.deleteMany({name: "나얍"});
'나얍'이라는 사용자 도큐먼트를 모두 삭제. 입력 파라미터로 조건을 붙여줄 수 있음.
- 응용 문법:
db.users.deleteMany({age: {$gte: 27}});
age 필드가 27 이상의 도큐먼트를 모두 삭제
- 코드 사용:
// 회원 탈퇴
deleteUserData = async (nickName) => {
await Comments.deleteMany({ nickName: nickName });
await Posts.deleteMany({ nickName: nickName });
const deleteUserData = await Users.deleteOne({ nickName: nickName });
return deleteUserData;
};
(;´・∀・)ゝ” deleteMany 후 용량 확보 및 속도 향상
- 설명: MongoDB는 deleteMany 시에 데이터는 삭제를 하지만 디스크 공간을 삭제한만큼 되돌려 주지 않는다. 이때 프라그먼테이션을 이용해 디스크 공간을 재할당하여 공간을 돌려 받을 수 있다.
- 기본 문법:
db.runCommand({compact: "collection_name", force: false})
단 프라이머리 일 경우 위 처럼 사용할 경우 오류가 발생한다.
프라이머리일 경우에는 force: true 를 사용해야 한다.
또한 세컨더리에는 따로 명령을 내려줘야 세컨더리 디스크에도 재할당이 이뤄진다.
'개발 > DB' 카테고리의 다른 글
🌱mongoDB:: local 말고 원격(?)으로 mongoDB연결하기? (0) | 2023.01.15 |
---|---|
🎯Node.js + mongoDB:: 랜덤 추출 코드 정리 (0) | 2022.12.11 |
🌱mongoDB:: 배열 수정 관련 & JS::객체/배열 관련 (0) | 2022.12.01 |
🌱mongoDB:: Array로 find? (0) | 2022.11.30 |
🌱mongoDB:: population (0) | 2022.11.29 |