2011-07-28 3 views
2

나는 시나가와 몽고 이드를 사용하여 MongoDB에 접근하고 있습니다. 객체 삭제를 시도 할 때를 제외하고는 대부분 잘 작동하지만 객체는 삭제되지만 데이터베이스에 남아있는 것처럼 보입니다.몽고 이드는 몽고 객체를 삭제하지 않습니다.

u = User.find(user_id) 
u.delete 

이것은 작동하는 것으로 보이며 오류를 생성하지는 않지만 Mongo 콘솔을 사용하여 데이터베이스에서이를 확인하면 개체가 여전히 존재합니다. 사용자 개체는 제한된 컬렉션에 없습니다.

u = User.find(user_id) 
u.delete 
u = User.find(user_id) 

이 변경으로 인해 개체가 성공적으로 삭제되었다는 오류가 발생합니다. 그럼에도 불구하고 Mongo 콘솔에서 사용자 컬렉션에 대한 find() 호출은 여전히 ​​객체를 보여줍니다.

+1

모델에'Mongoid : Paranoia'가 있습니까? 기본 동작은 deleted_at을 사용해서는 안됩니다. http://mongoid.org/docs/extras.html –

+0

감사합니다. Ted를 참조하십시오. 당신은 모델에 Paranoia가 맞고 "u.delete!"를 사용해야합니다. 그 대상을 진정으로 소멸시키는 것. – Scott

답변

1

MongoDB 개체가 데이터베이스에서 지워지지 않는 동안 "deleted_at"매개 변수가 개체에 추가되어 "삭제됨"을 나타냅니다. 이후에는 개체가 검색에서 발견되지 않습니다.

+0

감사합니다. Lior. "deleted_at"이 개체에 추가 된 것이 맞습니다. 내 개발자는 삭제를 방지하기 위해 사용자 모델에 편집증을 포함시킵니다. 정말 개체를 삭제하려면, "u.delete를 사용해야합니다 배웠습니다!" 내가 사용했던 표준 "user.delete"가 아닙니다. – Scott

관련 문제