2012-12-20 5 views
3

Mongo 컬렉션의 레코드에서 속성을 업데이트하려고하지만 새로운 값이 저장되지 않습니다. 내가 a을 검사하는 경우몽고 이드 - save 및 update_attribute가 지속되지 않습니다.

a = GraphEngine::UserPlace.where(place_id:5000000701039).first 
a.place_id = 5000000257690 
a.save! 
=> true 

place_id은 새로운 가치, 5000000257690을 반영,하지만 난 레코드를 다시로드 할 때, 새로운 place_id은 유지되지 않습니다.

왜 그런지 알고 싶습니다. 중복 된 레코드가 없는지 확인했습니다.

나는 또한 a.update_attribute(:place_id,5000000257690)을 시도했지만 운이 없습니다. => true을 반환하지만 값은 유지되지 않습니다.

+0

너무 큰 int 인 것 같습니다. 더 작은 ID로 시도해 보셨습니까? – MrYoshiji

+0

@MrYoshiji 유형이 큰지 여부가 중요합니까? 처음에는 bigint 값을 사용하여 객체를 만들 수있었습니다. – Huy

+0

Mongo는 bigint와 tinyint를 모두 정수로 취급합니다. – Huy

답변

5

place_id에 액세스 할 수 있는지 확인하십시오. 모델에 다음과 같이 추가하지 않을 경우 :

attr_accessible :place_id 
+1

고마워, 어리석은 실수. 분명히 mongo는 속성에 대량 할당이 허용되지 않아도 여전히 true를 반환합니다. – Huy