2011-09-23 4 views

답변

1

기본적으로 네가 할 수 있습니다. 의미는 있지만 기존 ORM을 사용하는 것보다 훨씬 적습니다.

Morphia를 사용하면 보존 된 개체의 인스턴스 변수가 설정되지 않은 경우 해당 개체는 mongo의 레코드에 포함되지 않습니다. 따라서 다른 인스턴스 변수를 추가하는 것은 mongo가 이전 레코드를 소급하여 매핑하는 데는 매우 간단합니다. (내 경험에 의하면) 해당 변수에 대해 null이됩니다.

이제 애플리케이션이 위치에 절대적으로 달려 있다면 1000 개 레코드를 업데이트해야하지만, 일반적으로 내 경험에 따르면 인스턴스 변수를 추가 할 수 있으며 그만큼 간단합니다.

+0

SQL에서 오는 것은 모두 똑같이 알고 있습니다. 몰라는 똑같습니다. 그것 .. – Erik

0

어쩌면이 페이지를 찾을 수 없습니다

. http://code.google.com/p/morphia/wiki/Updating

+0

은 인스턴스 변수 – Erik

+0

을 업데이트하는 데 그치만 모르겠지만 새로운 필드가있는 UserData에서 save를 호출하면 morphia/mongo에서 문서가 해당 필드와 함께 저장됩니다. 새 필드를 사용하여 컬렉션의 모든 문서를 저장하는 업데이트 메서드를 만들면 문제가 해결됩니다. –

+0

그게 유망한 소리, 어떻게 업데이트 방법을합니까, 내가 어딘가에 대해 읽을 수 있지만 길을 찾을 수 없습니다. 당신이 해결책을 가지고 있다면 받아 들일 수 있도록 답으로 의견을 게시하십시오. 행복 할 것입니다. – Erik

2

UserData의 모양 인 경우,

@Entity 
UserData{ 
@Id 
private ObjectId id; 
private String name; 
private int age; 
} 

당신은이 컬렉션 1000 개 문서를 추가했습니다.

지금, 당신은 position라는 또 하나 개의 필드,

그냥 이렇게, 기존의 1000 개 문서에서

@Entity 
UserData{ 
@Id 
private ObjectId id; 
private String name; 
private int age; 
private String position;//Add the field like this. 
} 

을 원하는 위치의 값은 null 될 것입니다.

mongo의 힘으로 원할 때 데이터 구조를 확장 할 수 있습니다.

+0

네, 그게 강력합니다 – Erik

관련 문제