2010-08-18 3 views
3

mongoid는 association에서 new를 호출 할 때 id를 삽입하지 않지만 association에서 build를 호출 할 때 id를 삽입하는 이유는 무엇입니까?mongoid new 대 빌드

이것은 버그입니까, 아니면 몽구스로 작동합니까?

답변

2

다른 ORM과 동일한 동작입니다 (예 : SQLite ... # 새로운 객체가 아직 저장/저장되지 않았기 때문에 새 ID를 만들지 않습니다!

저장이 수행 될 때마다 새로 저장된 개체에 사용 가능한 다음 ID가 사용됩니다. 즉, 새 개체가 두 개있는 경우 ID가 저장되므로 저장 될 때까지 ID를 할당 할 수 없습니다.

MongoDB ID는 SQL DB에서 ID로 증가하지 않지만 시간 스탬프가 키의 일부로 포함되어 있으므로 개체의 저장/지속 순서에 대한 종속성이 다시 생깁니다.

또한 ID는 저장된 개체에 대한 참조로만 의미가 있습니다. #new를 사용하여 개체를 만들고 저장할 필요가 없습니다. 저장되지 않은 개체에 ID를 할당하는 것은 의미가 없습니다.