2016-07-05 23 views
0

Der Titel möglicherweise nicht klar, aber was ich erreichen möchte, ist Kategorien mit parentCategories. Zum Beispiel:Machen Sie ein Modell eine Sammlung von sich selbst

/-Clothes 
/---Men 
/---Women 
/---Kids 
/-----Newborns 

Also dachte ich, ich jede Kategorie eine optionale übergeordnete Kategorie haben machen könnte und wenn ich eine Kategorie mit einem Elternteil ein, finden Sie diese übergeordnete Kategorie und fügen Sie die neue Unterkategorie es auch hinzufügen. Ist das klar?

Das ist, was ich bisher getan habe:

Category.js (Modell)

module.exports = { 
    connection: 'MongoDB', 

    attributes: { 
    name: { 
     type: 'string', 
     required: true, 
     unique: true 
    }, 
    description: { 
     type: 'string' 
    }, 
    products: { 
     collection: 'product', 
     via: 'category' 
    }, 
    parentCategory: { 
     model: 'category' 
    }, 
    subCategories: { 
     collection: 'category', 
     via: 'parentCategory' 
    }, 

    addSubCategory: function(sc) { 
     this.subCategories.push(sc); 
    } 
    } 
}; 

Dabei spielt es keine zu funktionieren scheint. Ich rufe addSubCategory von meinem Controller auf, sc, und diese Werte sind korrekt, aber es fügt der Kategorie niemals das Attribut "subCategory" hinzu. Ich weiß, das ist vielleicht nicht der beste Ansatz, irgendwelche Vorschläge?

Antwort

0

Sie benötigen kein subCategories Attribut. Folgendes Design wäre mein Vorschlag.

module.exports = { 
    connection: 'MongoDB', 

    attributes: { 
     name: { 
     type: 'string', 
     required: true, 
     unique: true 
     }, 
     type: { 
     type: 'string', 
     enum: ['parent', 'subcategory'], 
     }, 
     description: { 
     type: 'string' 
     }, 
     products: { 
     collection: 'product', 
     via: 'category' 
     }, 
     parentCategory: { 
     model: 'category' // this exists only if type is 'subcategory' else null 
     }, 

     addSubCategory: function(sc) { 
     this.subCategories.push(sc); 
     } 
    } 
    }; 

Lassen Sie mich wissen, wenn Sie irgendwelche Zweifel haben.

+0

Dies würde nicht nach der übergeordneten Kategorie suchen und die neue suncategory hinzufügen. Ich möchte, dass die Kategorien hierarchisch bevölkert werden. –

+0

Sie können auch ein anderes Modell für "Unterkategorie" erstellen, aber Design weise ich denke, dass dieses Modell perfekt funktionieren sollte. Sie können Daten mit Async-Blöcken auffüllen. – khushalbokadey