2010-07-27 6 views
4

MongoDB를 기반으로 한 블로그를 구현 중입니다.몽고와 일대 다 관계 및 업데이트 문제

  • 게시물 수집해야한다 :

    은의이 처음에는 몽고의 사람이 블로그 게시물과 댓글 (http://www.mongodb.org/display/DOCS/Schema+Design)를 저장하기 위해 우리를 권장하는 방법을 살펴 보자. 댓글은 성능을 위해 게시물 내에 포함 된 개체 여야합니다.

이 스키마에서 주석을 편집하거나 승인하는 것이 매우 어렵다는 것을 알게되었습니다.

덧글으로 인해 나는 코멘트 컬렉션에서 찾을 수있는 식별자가 없기 때문에 포스트 문서의 일부입니다. 별도로 편집 할 수 없습니다.

그래서 모든 의견을 한 번에 편집하고 있습니다. 또 다른 문제는 누군가가 새로운 코멘트를 게시 할 수있는 모든 코멘트를 편집하는 동안 코멘트 콜렉션을 저장 한 후에 오버라이드 (override)된다는 것입니다.

내가 뭔가 잘못하고있을 수 있습니까? 또는 Mongo 사람들이 설명한 유스 케이스는 주석이 편집되지 않을 것으로 예상합니다.

감사합니다. Alexey Zakharov.

+0

대부분의 문서 DB에서 사용됩니다. 나 자신과 싸워라. – mxmissile

답변

3

Atomic Operators을 사용하면 '모든 댓글 저장'문제를 해결할 수 있습니다. 예를 들어, 다음과 같이 작동합니다 :

db.posts.update({ _id: [ID] }, { $set: { "comments.5.body" : "New Comment Body" } }) 

편집 :을 그냥 내 위의 답변을 확장 할 수 있습니다. 원자 연산자가 작동하는 방식은 전체 문서가 아닌 특정 필드를 업데이트하는 것입니다. 이것은 업데이트를 더욱 간결하게 할뿐만 아니라 상당히 빠릅니다. 예를 들어 많은 의견이 담긴 큰 블로그 게시물이있는 경우 특히 그렇습니다.

+0

이것이 실제로 답변인지 확인할 수 있습니다. –

+0

감사합니다. 스티븐. 전에 Dot Notations에 대해 들어 보지 못했습니다. - http://www.mongodb.org/display/DOCS/Dot+Notation+%28Reaching+into+Objects%29. –