2013-10-02 7 views
4

mongodb에서 연관 배열을 사용하는 것은 나쁜 습관이라고 생각합니까? 왜 몽구스가 스키마 정의에서 이것을 제공하지 않는지 궁금합니다.몽구스 스키마가 포함 된 연관 배열?

+1

몽구스는 "스키마"를 추가하고 연관 배열은 스키마가 없음을 암시합니다 (문서 임). 예약 된'_id' 필드를 사용하지 않는 것 이외에 몽구스를 건너 뛰면 자유롭게 할 수 있습니다 (필요하다면 네이티브 MongoDB 액세스와 몽구스를 사용하여 혼합하고 일치시킬 수 있습니다). – WiredPrairie

답변

3

"연관 배열"에 의한 경우 "Object"를 의미하는 경우 제대로 작동합니다. 일반 올드 "객체"만 사용하거나 특정 속성을 지정하거나 "mongoose.Schema.Types.Mixed"를 사용하여 다양한 유형을 사용할 수 있습니다.

{ 
    //regular old javascript/json data types 
    created: Date, 
    //this works just fine 
    statistics: Object, 
    //or you can specify the shape of the object 
    address: {state: String, line1: String}, 
    //for the extra features you get with a true subdocument 
    nested: [SomeOtherMongooseSchema], 
    //Could be array, boolean, number, whatever. Can vary with each document. 
    grabBag: mongoose.Schema.Types.Mixed 
} 
+0

개체의 모양을 지정하면 쿼리 기능에 영향을 미칩니 까? Object를 사용하여 몽구스 기능을 잃어 버렸는지 확실하지 않습니다. 필드 수준의 조작이라고 가정합니다. 가상, getters, 세터, 유효성 검사 등과 같은? – paulkon

+1

mongodb에서 제공하는 모든 기능으로 쿼리 할 수 ​​있어야합니다. Mongoose는 실제로는 쿼리에 대해서만 형 변환을 추가하지만, 다른 지식은 쿼리와 관련하여 어떤 기능도 추가/제거하지 않습니다. 대부분의 몽구스 마법은 쓰기 작업 중에 발생합니다. 이것이 할 수있는 일과 할 수없는 일을 일반적으로 설명하기가 어렵습니다. 특정 유스 케이스와 목표를 설명하는 질문을 게시 한 다음 사람들이 구체적인 제안을 할 수있는 이유는 무엇입니까? 분명히 mongodb에는 많은 유연성이 있습니다. –

+0

맞습니다. 특정 유스 케이스와 함께 질문을 게시해야 할 것 같습니다. – paulkon