2012-06-05 3 views
2

나는 MongoDB를 봄 (3)을 사용하고 내가 가지고있는 다음과 같은 도메인 개체 :

@Document(collection = "users") 
public class User { 

    @Id 
    private String id; 

    private List<Post> posts; 
} 

나는 UserPost을 추가 할 수 있지만, 그렇게 할 수있는 최선의/가장 효율적인 방법은 무엇입니까? 프로그래밍 방식으로이 작업을 수행하는 방법을 볼 수 있습니다 - 사용자를 찾고 목록에 새 게시물 개체를 추가하고 사용자를 다시 저장하십시오. 그러나 이것이 매우 우아하고 효율적이라고 생각하지 않습니다.

문서에서 $push 연산자를 사용해야하는 것 같지만 Spring의 MongoTemplate을 사용하여이 작업을 수행하는 방법에 대한 예제를 찾지 못하는 것 같습니다. 누구든지 예제를 제공 할 수 있습니까?

답변

5

$ push 새 문서를 배열에 추가하는 올바른 방법입니다.

this presentation (슬라이드 22)의 예제 코드를 볼 수 있습니다. 관련 전화 번호는 다음과 같습니다.

mongoTemplate.updateFirst(collection, 
... new Query(where("_id").is(...)), 
... new Update().push("field", dbo)); 
+2

감사합니다. 'mongoTemplate.updateFirst (Query.query (Criteria.where ("username"). is ("username_1")), 새로운 Update(). push ("posts", newPostObject), User.class); '나는 많은 예제에서 보았 듯이'Update' 클래스를 정적으로 사용하려고했기 때문에 다소 혼란 스럽다고 생각합니다. 그리고 이것은'push' 메소드를 허용하지 않았습니다. – chrisjleu