2013-02-07 6 views
0

웹 페이지에 Match를 출력했지만이 팀 [] 필드를 인쇄 할 때 Schema가 2 개 있고 아래 데이터가 생성됩니다. 이전 개발 시점의 것 같습니다 그때 이후로 올바른 장소에 저장하기 위해 hometeam을 얻었습니다.이 필드가 불필요한 것처럼 제거하려면 어떻게해야합니까?Mongodb - 문서의 요소를 제거하는 방법

팀 스키마

var Team = new Schema({ 
    'key' : { 
    unique : true, 
    type : Number, 
    default: getId 
    }, 
    'name' : { type : String, 
       validate : [validatePresenceOf, 'Team name is required'], 
       index : { unique : true } 
      } 
}); 

일치 스키마

var Match = new Schema({ 
    'key' : { 
    unique: true, 
    type: Number, 
    default: getId 
    }, 
    'hometeam' : { type: Schema.ObjectId, ref: 'Team' }, 
    'awayteam' : { type: Schema.ObjectId, ref: 'Team' } 
}); 

출력

[ 
    { 
    "_id": "5112aeaf064432060d000002", 
    "team": [ 
     { 
     "key": 1360178863022, 
     "_id": "5112aeaf064432060d000003" 
     } 
    ], 
    "__v": 0, 
    "key": 1360178863022 
    }, 
    { 
    "hometeam": "5106e7ef9afe3a430e000007", 
    "_id": "5113b7ca71ec596125000005", 
    "__v": 0, 
    "key": 1360246730427 
    } 
] 

답변

0

몽구스가 유효성 검사를 수행하는 스키마를 가지고 일치하지만, MongoDB를하지 않습니다. Mongo는 당신의 데이터가 무엇을 나타낼 지 전혀 모른다는 의미의 스키마입니다. 따라서 스키마에서 과거에 이러한 변경을 허용 한 경우 사용자가 만든 엉망을 정리하는 것은 사용자의 책임입니다. 이전 스키마 만 가지고있는 값에 대한 쿼리를 수행하고 문서에서 제거하기 위해 remove를 호출 할 수 있습니다. 그렇지 않으면 대부분 수동 작업 (또는 모든 것을 삭제합니다. 이는 개발에도 좋습니다)입니다.

관련 문제