반응형
Mongodb - 배열 필드의 모든 요소를 삭제하는 적절한 방법?
Mongodb의 배열 필드(모든 문서에 걸쳐)에서 모든 요소를 제거할 수 있는 적절한 방법을 찾고 있습니다. 이는 동등한 것으로 보이며, 권장되는 방법은 다음과 같습니다. (또는 다른 방법일 수도 있습니다.)
db.collection.update({}, { $pull : { 'myArray': {} }}, {multi:true} )
또는
db.collection.update({}, { $set : {'myArray': [] }} , {multi:true} )
그$set
변형은 더 빠를 것입니다.$pull
어레이에 대한 계산을 수행해야 합니다.당신이 당신의 질의에 어떤 요소도 제거하지 않고 있기 때문에, 나는 그것이 효과가 있을지 조차도 확신할 수 없습니다.
만약을 위해 빈 배열을 유지해야 합니까?그렇지 않다면, 아마도 더 나은 방법이 있을 것이기 때문입니다.$unset
그것.
만약 당신이 빈 배열을 유지해야 한다면, 나는 당신의$pull
호출이 작동하지 않습니다. 모든 요소가 아니라 어레이에서 모든 빈 요소가 제거될 것입니다.
Mongodb의 공식 문서에 따르면:
배열 요소를 일치시키기 위해 $와 함께 사용하는 경우 $unset은 배열에서 일치 요소를 제거하는 대신 일치 요소를 null로 바꿉니다.이 동작은 배열 크기와 요소 위치를 일관되게 유지합니다.
$set가 적절한 방법이어야 합니다.
언급URL : https://stackoverflow.com/questions/17860080/mongodb-proper-way-to-delete-all-elements-in-an-array-field
반응형
'programing' 카테고리의 다른 글
LINQ 단일 대 첫 번째 (0) | 2023.06.03 |
---|---|
Ruby 콘솔에서 사용자 고안 (0) | 2023.06.03 |
UIImageView에서 색조 색상 사용 (0) | 2023.06.03 |
iPhone 시뮬레이터에 .ipa 파일을 설치하는 방법 (0) | 2023.06.03 |
XAML Column Definition에서 *(아스터리스크)의 의미는 무엇입니까? (0) | 2023.06.03 |