2010-04-10 7 views
2

Mongo에서는 데이터베이스와 컬렉션을 가질 수 있다는 것을 이해합니다. 저는 블로그와 코멘트 (다른 ​​것들 중에서)를 가질 것이며, 가능한 동시성 문제를 제한하기 위해 이전에 MySQL과 꽤 무거운 파티션을 사용하고있는 소셜 타입의 앱을 개발 중입니다.MongoDB - 컬렉션의 적절한 사용?

MySQL을 사용하여 데이터 (블로그, 페이지 등)를 추가로 분할하기 위해 몇 가지 테이블이있는 _user 데이터베이스에 모든 사용자 데이터를 채웠습니다.

내 즉시 Mongo와의 반응은 사용자 당 하나의 컬렉션으로 '사용자'데이터베이스를 만드는 것입니다. 이런 식으로 사용자의 'zach'블로그 항목은 'zach'컬렉션으로 들어가며 같은 주석의 하위 오브젝트가됩니다. 기본적으로 MySQL에서 사용자 당 하나의 테이블을 동적으로 생성하는 것과 비슷하지만 복잡성과 제한이 부과되지 않습니다.

물론 나는이 생각의 퀄리티와 잠재 된 문제를 측정하는 데 어려움이 있기 전에 몽고를 실제로 사용하지 않았기 때문에 길 아래로 떨어질 수도 있습니다.

사용자 데이터는 사용자가 생성/비공유 (주로) 한 장소에 배치되는 * nix 환경의 사용자 디렉토리와 비슷합니다 (현재 언급 된 appname_users가 될 MySQL과 함께). 위).

대부분의 사용자 데이터는 사용자 페이지에만 적용됩니다. 모든 사이트 사용자 (검색 가능한 사용자 프로필)에서 쿼리되는 사용자 데이터 중 일부는 현재 별도의 데이터베이스/테이블에 보관되어 있으며이 정보가 appname_system 데이터베이스에 저장되어 컬렉션 및/또는 특정 응용 프로그램으로 분리 될 수 있습니다. 데이터베이스 (appname_profiles).

어쨌든이 문서는 현재 약간 얇아서 경험이 극히 제한되어 있으므로 시스템에 대한 더 나은 이해를 가진 사람으로부터 약간의 지침을 찾을 수있을 것으로 생각됩니다.

필자는 MySQL을 스키마가없는 문서 저장소로 취급하려고 시도해 왔으며 Mongo로이 작업을 수행하는 것이 훨씬 더 직관적/정상/합리적인 것처럼 보이기 때문에 실제로 시작하기를 고대하고 있습니다.

덕분에, 자크

답변

2

나는 응용 프로그램의 같은 종류가 있습니다.

몇 가지 사항을 고려하십시오. 데이터베이스간에 모음이 아닌 다른 모음간에 쿼리를 교차시킬 수 있습니다. 그래서 모든 데이터가 포함 된 데이터베이스를 만든 다음 각 개체의 컬렉션을 만드는 것이 좋습니다.

그런 다음 각 문서에는 모든 종류 및 필드 수가 포함될 수 있습니다.

는 내가 제대로 내 객체를 문제 쿼리를했다 (이 잘 작동했지만, 내 시스템의 아키텍처이 사용하기 위해 설계되었다)

와 C 데이터베이스가 여러간에 공유 할 수 있습니다/B 배열을 삽입하지 않도록 노력 자동으로 서버 공간이 문제가되지 않습니다 (서버가 1 대 이상인 경우)

+0

감사합니다. Stunti. 더 많은 콜렉션 관련 응답을 기대했지만 데이터베이스 정보도 큰 도움이되었습니다. 내가 더 많은 응답을 보게 될 것 같지 않으므로 당신의 대답을 대답으로 받아 들일 것입니다. 이 정보를 공유해 주셔서 감사합니다. – zmg

+0

컬렉션을 교차하는 쿼리의 예가 있습니까? – Thilo