speichern Wenn ich ein Dokument darstellt, einen Beitrag mit Kommentaren haben, die wie folgt aussieht:MongoDB: Finden Sie die erzeugte ID des inserierten Kind auf Mutter
{
"_id": "579a2a71f7b5455c28a7abcb",
"title": "post 1",
"link": "www.link1.com",
"__v": 0,
"comments": [
{
"author": "Andy",
"body": "Wish I had thought of that",
"_id": "579a2a71f7b5455c28a7abcd",
"upvotes": 0
},
{
"author": "Jim",
"body": "Just a comment",
"_id": "579a2a71f7b5455c28a7abcc",
"upvotes": 0
}
],
"upvotes": 5
}
In der Berufung (Javascript-Code), füge ich eine neue Kommentar, indem Sie auf die post.comments
-Array drücken, dann speichern Sie die Post mit .save
mit einem Rückruf. Beim Speichern Rückruf möchte ich die generierte _id des neuen Kommentars, die ich gerade gespeichert habe, erhalten. Wie mache ich das?
Ich habe natürlich das Elternpostdokument im Rückruf, aber das ist nicht nützlich, da ich nicht sagen kann, Kommentar wurde gerade eingefügt.
Gibt es ein anderes Dokument Methode oder eine alternative Form des .save
Rückruf mit meiner Situation umgehen?
Oder muss ich einfach dem folgen, was ich normalerweise tun würde, und vor dem Speichern eine eindeutige ID auf dem Kommentar generieren?
EDITED: Ich benutze Mungo, Entschuldigung, vergessen zu sagen!
Ich werde die Mungo-Dokumente lesen, wie vorgeschlagen. Ich habe alle klassischen Multi-User-Probleme ... also möchte ich die Details überprüfen. – kpollock
Okay, das sieht gut aus, die automatisch generierte ID wird * vor * gesetzt, das neue Subdoc kommt von save() zurück, also ist es in Ordnung mit Multi-User und entspricht dem manuellen Hinzufügen einer eindeutigen ID mit Types.ObjectID(). Süss! – kpollock