2011-10-17 4 views
7

모든 사용자에게 subcollections (약 15)를 사용하는 데 어떤 감각이 있습니까? 사용자 수는 약 10k입니다. subcollections의 레코드 양은 2M에 도달 할 수 있습니다. 아니면 일반적인 대규모 컬렉션을 사용해야합니까? 귀하의 답변에 감사드립니다.mongo subcollection 사용

답변

8

임베디드 컬렉션을 사용하면 데이터베이스가 더 간단 해지고 (컬렉션 수가 줄어듦) 데이터베이스 작업이 빨라집니다. 나는 보통 내가 모든 컬렉션을 별도로 만들 수 없다면 모든 것을 포함하려고 노력하고있다. 포함 된 컬렉션이 커질 경우로드하는 동안 사용자로부터 제외 할 수 있습니다.

db.posts.find({ tags : 'tennis' }, { comments : 0 }); 

위 쿼리는 댓글이없는 게시물을로드합니다. Documentation

그러나 임베디드 컬렉션도 약간의 복잡성을 추가합니다. 예를 들어 mongodb는 임베디드 컬렉션을 정렬 할 수 없습니다. 순서는 항상 기본값입니다. 그러나 당신은 클라이언트 쪽에서 그것을 할 수 있습니다. 당신을위한 기본 순서 작업, 당신은 $ 슬라이스를 통해 페이지 중첩 수집 할 수있는 경우 :

db.posts.find({}, {comments:{$slice: [20, 10]}}) // skip 20, limit 10 

는 또한 스키마 설계에 대한이 doc에 봐.

가능하면 언제나 퍼가기 위해 1을 더합니다.