[MONGODB] 중첩 된 스키마 대 몽구스 하위 문서
MONGODB중첩 된 스키마 대 몽구스 하위 문서
나는 프로와 내 주요 스키마의 깊은 층 대 하위 문서를 사용하는 단점에 관해서 궁금 :
var subDoc = new Schema({
name: String
});
var mainDoc = new Schema({
names: [subDoc]
});
또는
var mainDoc = new Schema({
names: [{
name: String
}]
});
나는 현재 모든 곳에서 subdocs를 사용하고 있지만 성능에 대해 주로 궁금해 또는 I 발생할 수있는 문제를 질의하고있다.
해결법
-
==============================
1.워드 프로세서에 따르면, 그것은 정확히 동일합니다. 그러나, 스키마를 사용하는 것이 아니라 (한 당신이 장애인을 가지고 있지 않는 한) 같은 _id 필드를 추가하고, 아마도 subdocs을 추적하기 위해 좀 더 많은 리소스를 사용합니다.
워드 프로세서에 따르면, 그것은 정확히 동일합니다. 그러나, 스키마를 사용하는 것이 아니라 (한 당신이 장애인을 가지고 있지 않는 한) 같은 _id 필드를 추가하고, 아마도 subdocs을 추적하기 위해 좀 더 많은 리소스를 사용합니다.
-
==============================
2.당신이 다시 사용 모델의 다양한 부분에있는 스키마가있는 경우 당신이 자신을 복제 할 필요가 없습니다, 자식 문서에 대한 개별 스키마를 정의하는 것이 유용 할 수 있습니다.
당신이 다시 사용 모델의 다양한 부분에있는 스키마가있는 경우 당신이 자신을 복제 할 필요가 없습니다, 자식 문서에 대한 개별 스키마를 정의하는 것이 유용 할 수 있습니다.
-
==============================
3.정적 문서 또는 그 때문에 성능에 미치는 영향의 몇 백 이하되는 경우 포함 된 문서를 사용해야합니다. 나는 얼마 전에 대한 그 문제에 대해 겪었습니다. 새로, MongoDB를위한 솔루션 건축가로 작동하기 Asya Kamsky는 "하위 문서를 사용하여"에 대한 기사를 작성했다.
정적 문서 또는 그 때문에 성능에 미치는 영향의 몇 백 이하되는 경우 포함 된 문서를 사용해야합니다. 나는 얼마 전에 대한 그 문제에 대해 겪었습니다. 새로, MongoDB를위한 솔루션 건축가로 작동하기 Asya Kamsky는 "하위 문서를 사용하여"에 대한 기사를 작성했다.
그 솔루션 또는 가장 좋은 방법을 찾고있는 사람들에게 도움이되기를 바랍니다.
http://askasya.com/post/largeembeddedarrays에 원래 게시 할 수 있습니다. 당신은 그녀를 https://stackoverflow.com/users/431012/asya-kamsky에 프로파일 유래에 도달 할 수 있습니다
-
==============================
4.기본적으로, 변수 nestedDov를 만들고 이름을 여기에 넣어 : [nestedDov를]
기본적으로, 변수 nestedDov를 만들고 이름을 여기에 넣어 : [nestedDov를]
간단한 버전 :
var nestedDoc = new Schema({ name: String }); var mainDoc = new Schema({ names: [nestedDoc] });
JSON 예
{ "_id" : ObjectId("57c88bf5818e70007dc72e85"), "name" : "Corinthia Hotel Budapest", "stars" : 5, "description" : "The 5-star Corinthia Hotel Budapest on the Grand Boulevard offers free access to its Royal Spa", "photos" : [ "/photos/hotel/corinthiahotelbudapest/1.jpg", "/photos/hotel/corinthiahotelbudapest/2.jpg" ], "currency" : "HUF", "rooms" : [ { "type" : "Superior Double or Twin Room", "number" : 20, "description" : "These are some great rooms", "photos" : [ "/photos/room/corinthiahotelbudapest/2.jpg", "/photos/room/corinthiahotelbudapest/5.jpg" ], "price" : 73000 }, { "type" : "Deluxe Double Room", "number" : 50, "description" : "These are amazing rooms", "photos" : [ "/photos/room/corinthiahotelbudapest/4.jpg", "/photos/room/corinthiahotelbudapest/6.jpg" ], "price" : 92000 }, { "type" : "Executive Double Room", "number" : 25, "description" : "These are amazing rooms", "photos" : [ "/photos/room/corinthiahotelbudapest/4.jpg", "/photos/room/corinthiahotelbudapest/6.jpg" ], "price" : 112000 } ], "reviews" : [ { "name" : "Tamas", "id" : "/user/tamas.json", "review" : "Great hotel", "rating" : 4 } ], "services" : [ "Room service", "Airport shuttle (surcharge)", "24-hour front desk", "Currency exchange", "Tour desk" ] }
예:
-
==============================
5.나는이 SO에 여러 개의 우편으로 다른 곳에서 처리됩니다 생각합니다.
나는이 SO에 여러 개의 우편으로 다른 곳에서 처리됩니다 생각합니다.
불과 몇 :
큰 열쇠는 여기에 단 하나의 대답은 다소 복잡한 트레이드 오프의 세트가 없다는 것입니다.
-
==============================
6.둘 사이에 약간의 차이가 있습니다 :
둘 사이에 약간의 차이가 있습니다 :
from https://stackoverflow.com/questions/15208711/mongoose-subdocuments-vs-nested-schema by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게하여 MongoDB의 핵심 기반으로 중복을 제거하는 방법? (0) | 2019.12.13 |
---|---|
[MONGODB] MongoDB를이 : errno를 : 127.0.0.1:27017 이유에 연결하지 못했습니다 10061 (0) | 2019.12.13 |
[MONGODB] 블로그 MongoDB의 스키마 설계 (0) | 2019.12.13 |
[MONGODB] 코드 (100)와 MongoDB를 닫힌다 아래로 (0) | 2019.12.13 |
[MONGODB] 어떻게하여 MongoDB에서 transparent_hugepage / 조각 모음 경고를 피하기 위해? (0) | 2019.12.13 |