2013-08-25 2 views
0

저는 DB의 NoSQL 쪽에서 매우 새로 왔습니다.하지만 수년 동안 RDBM을 주로 사용했습니다.MongoDB (NoSQL) - 문서 참조/자체 링크가 가능합니까?

지금 MySQL에는 속성 및 영양소로 연결되는 항목이 포함 된 약 10,000 개의 식품 품목 (약 15,000 개 정도 추가)이 들어있는 데이터베이스가 있습니다. 이것은 내 연구가 나를 취한 한 NoSQL에 대한 좋은 사용 인 것처럼 보였지만 한 부분으로 생각하지 않을 수도 있습니다.

NoSQL에는 아무런 조인이 없다는 것 (단순함에 대해 매우 만족함)이 있지만, 지금 우리는 다소 동일한 몇 가지 식품 항목을 가지고 있으며, 모두 참조 할 것입니다. 예를 들면 다음과 같습니다.

Tomatoes, Raw 
Tomatoes, Canned 
Tomatoes, Cooked 

는 내가 뭘 하겠어 것이 주된 목적 "토마토, 원료"또는 그냥 "토마토"를 참조 그들 모두를 만드는,하지만 그들은 모두 속성과 영양소의 자신의 세트를 포함하고 정당하게 자신이다 자신의 "음식 항목".

RDBM의 경우 item 테이블에 primary_item_id 필드를 추가하고 기본 항목을 참조하기 만하면됩니다.

MongoDB에서 가능합니까? 아니면 MySQL을 사용해야합니까?

-Kerry

+0

MongoDB의 모든 요소에 스키마가 없으므로 너가 원하는 것을 할수있어. 분석은 관심있는 검색어를 중심으로 이루어져야합니다. – WiredPrairie

+0

기본 항목으로 관련 항목을 조회 할 수 있어야합니다. 나 자신의 ID와 자신의 필드를 만들어야합니까? 자동 증가가 있습니까? –

+1

여기에서 시작하십시오 : http://docs.mongodb.org/manual/core/data-modeling/ 모든 문서에는 고유 한'_id'가 있어야합니다. 하나도 제공하지 않으면 자동 생성됩니다 (MongoDB의'ObjectId '입니다). 아니요, 자동 증가 필드가 없지만 경우에 따라 기능을 에뮬레이션 할 수있는 방법이 있습니다. – WiredPrairie

답변

1

당신과의 주요 항목이 될 수 MongoDB를 즉 토마토에서 같은 일을 사용할 수 있다고 _id = 1이 항목은 컬렉션으로 알 수있다 1로 부모 ID를 갖게됩니다

을 (제가 위에서처럼) 당신이 질의 목적을 위해 널 (null)로 주요 항목에 parentid을 유지하거나 필요하지 않은 경우 그냥 열을 제거 할 수 있습니다 { { 1, "Tomatoes", null }, { 2, "Tomatoes, Raw", 1 }, { 3, "Tomatoes, Canned", 1 }, { 4, "Tomatoes, Cooked", 1 } }

주 (및 MongoDB를 스키마 무료로 작동합니다.)