programing

Mongodb - 배열 필드의 모든 요소를 삭제하는 적절한 방법?

projobs 2023. 6. 3. 09:58
반응형

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

반응형