2012-04-13 2 views
1

RDBMS 배경을 가진 mongo/nosql 초보자로서 나는 최선의 방법을 궁금해했습니다.Mongo 문서에서 데이터 목록 추출

현재 일부 필드에는 "참조 데이터"로 간주되는 많은 문서 집합이 있습니다.
필자가 필요로하는 것은 "참조 필드"의 가능한 값을 요약 한 검색 인터페이스에 표시하여 내 문서 세트의 필터를 계속 진행하는 것입니다.

영양에 관한 아주 간단하고 어리석은 예를 들어 봅시다.

{ "_id": 1, "name": "apple", "category": "fruit"} 
{ "_id": 1, "name": "orange", "category": "fruit"} 
{ "_id": 1, "name": "cucumber", "category": "vegetable"} 

내가 "카테고리"에 대한 모든 가능한 값을 표시하는 선택 박스를하고자하는 appplication에서 : 는 여기에 몇 가지 몽고 문서의 추출물이다. 여기에 "과일"과 "야채"가 표시됩니다.

앞으로 나아갈 수있는 가장 좋은 방법은 무엇입니까?

  • 기존 문서의 데이터를 추출 하시겠습니까?
  • 는 ... 다른
  • 뭔가를 RDBMS에 (내가 RDBMS에서하는 것처럼)
  • 저장 참조 데이터를 고유의 가능한 값을 나열 일부 참조 문서를 만들고 프로그래밍 방식으로 몽고와 RDBMS 연결?

답변

1

첫 번째 옵션은 구현이 가장 쉽고 인덱스가 올바르게 설정된 경우 효율적이어야합니다 (distinct command 참조).

또한 (참조 컬렉션에 연결 - RDBMS 방법) 두 번째 옵션 선택할 수 성능을 거래공간을 위해 (데이터를 가져 오는 더 많은 쿼리가 필요합니다) (당신은 더 적은 공간이 필요합니다). 또한 카테고리가 다른 콜렉션에서도 사용되는 경우이 옵션이 선호됩니다.

다른 옵션이 더 좋으므로이 경우 혼합 시스템 (NoSQL + RDBMS) 사용을 권장하지 않습니다.

응용 프로그램 코드에 범주 값을 직접 저장할 수도 있습니다 (사용 사례에 따라 다름). 어떤 RDBMS 광신도가 그에게 말하면 눈물을 흘릴 수도 있지만 (또는 악화 될 수도 있음) YMMV. ;)