2016-06-02 8 views
0

So habe ich ein Schema wie folgt aus:MEAN MongoDB Sammlung ersetzen und erstellen Sie Dokumente

var article = new mongoose.Schema({ 
    title : String, 
    comments : [{ 
     pe: mongoose.Schema.Types.ObjectId, 
     ref: 'Comment' 
    }] 
}); 

und:

var comment = new mongoose.Schema({ 
    created : Date, 
    text : String 
}); 

jetzt habe ich meine kleine Winkel Anwendung, wenn ich mit meiner API und Artikel abrufen ich bekomme so etwas wie:

{ 
    title : "please help me" 
    comments : [] 
} 

nun am vorderen Ende schiebe ich einige Kommentare und das neue Objekt:

{ 
    title : "please help me" 
    comments : [{ 
     text : "Now, go f**k yourself", 
     date : "1 January 1970 00:00:00 UTC." 
    }] 
} 

Wenn ich die API aufrufen und ich das Dokument aktualisiere, möchte ich, dass Mongo die Unterobjektkommentare selbst erstellen würde, gibt es einen Weg? Sollte es automatisch tun?

Antwort

0

würde ich einen Artikel Schema auf diese Weise schreiben (Disclaimer: Ich habe nicht versucht, Mungo):

var article = new mongoose.Schema({ 
    _id: String // or mongodb.ObjectId? I'm not sure. 
    title : String, 
    comments : [{ 
     _id: String // this field is not nessesary 
     text: String, 
     date: String 
    }] 
}); 

var comment = new mongoose.Schema({ 
    created : Date,  // created or date? 
    text : String 
}); 

Wenn Sie mit Ihnen api abrufen, können Sie so etwas wie bekommen:

{ 
    "_id": "ndrjgnd..fesf", 
    "title": "grdgrdgr", 
    comments: [ {"text": "hello", "created": "2016:...:"}, ... , ] 
} 

Dann können Sie neue Kommentare von Frontend drücken:

{ 
    "articleId": "ndrjgnd..fesf",  // this is important. 
    "text": "balabala" 
} 

Und update db: db.article.update({_id: ariticleId}, {$push: newComment})

+0

Wahr, ist, dass ich versucht habe, die Struktur im Beispiel zu vereinfachen. In meiner App hat der Objektkommentar eine komplexe Struktur und ich bevorzuge es separat in einem anderen Schema zu haben, weil ich es abfragen könnte. –

+0

@GaetanoPessa so, was ist das Problem – Zen

+0

Ich bin kein Experte, die Idee ist, dass wenn ich versuche, in der DB ein JSON-Objekt mit einem Array innerhalb (das Array, das den Kommentar enthält), von Objekt, das eine hat Struktur wie die im Schema, Mongo sollte automatisch einen Kommentar erkennen und meinen Kommentar Object erstellen. Das passiert nicht. Es ist normal ? –