2016-07-25 3 views
0

그래서 내가 엔티티 프레임 워크를 통해 SQLSERVER를 사용하고 있었다 그리고 난 그냥 다시, 푸른 SQL 탄성 DB 년대에 가격을 인상 이메일 말 푸른있어 MongoDB의에서 entites의 많은 표현에 많은! 어떤 식 으로든 mongodb에 가면이 유창한 api를 몽고 문서로 번역하는 데 도움이 필요합니까? ? 내가 알아 낸 : 1 관계하나와

public CourseMappings() 
       { 
        HasMany<User>(s => s.Student) 
         .WithMany(c => c.Course); 
       } 

public AddressMappings() 
      { 

       HasRequired(c => c.Student) 
       .WithRequiredDependent(u => u.Address); 
      } 


public StudentMapping() 
      { 

       HasRequired(c => c.Address) 
       .WithRequiredPrincipal(u => u.Student); 

      } 

있어 세 개의 테이블, 학생, 주소 및 과정, 내가 MongoDB를이 모델 어떻게 내가 주소가 1 학생에 포함됩니다 알고있다. 하나의 문서 (예)에서 질문을 할 수 있습니까? 아니면 학생들과 다 대다 관계를 맺을 수있는 과정이 StudentId가있는 별도의 문서가 될 수 있습니까?

+0

쿼리가 어떤 패턴을 대한 액세스입니다 - : 컬렉션 스키마 데이터 모델은 다음과 같은 것입니까? 애플리케이션이 학생 또는 코스별로 데이터에 액세스합니까? – notionquest

+0

학생이 액세스 할 수 있습니다. –

답변

0

MongoDB의 데이터 모델은 응용 프로그램의 "쿼리 액세스 패턴"에 크게 좌우됩니다. 귀하의 신청서는 학생 ID 또는 학생 데이터별로 데이터에 액세스합니다. 컬렉션이 하나 뿐인 것이 좋습니다.

{ 
    "_id" : ObjectId("57971c2b4895ddf87c8747ea"), 
    "studentid" : 1, 
    "studentname" : "name", 
    "address" : { 
     "name" : "street name", 
     "addressline1" : "line 1", 
     "addressline2" : "line 2", 
     "post code" : "GRUHFYN" 
    }, 
    "courses" : [ 
     { 
      "courseid" : 1, 
      "coursename" : "science" 
     }, 
     { 
      "courseid" : 2, 
      "coursename" : "english" 
     }, 
     { 
      "courseid" : 3, 
      "coursename" : "Maths" 
     } 
    ] 
} 

Student Model with data types

+0

좋아, 주소는'List <>'형식이 될 것이다. 코스는 어떻게 POCO로 나타 납니까? –

+0

당신은 친절 전체 문서를 마시고와 미래에 나 같은 사람을 저장시겠습니까? –

+0

주소가 목록이 아닙니다. MongoDB 용어로, 그것은 단지 하위 문서 일뿐입니다. 과정은 학생이 여러 과목을 등록 할 수있는 목록입니다. RDBMS와 유사하여 MongoDB에는 제약 개념의 존재가 없음을 유의하시기 바랍니다. 그래서 나는 당신이 제안 내가 POCO을 함께 넣을 수 있는지 모르겠습니다. 나는 자세한 내용은 각 필드의 MongoDB의 데이터 유형을 부착했다. – notionquest

관련 문제