2016-07-09 6 views
1

Ich erstelle einen Beitrag & Kommentare, und ich entwarf, um Kommentare zu posten. "Comments" ist ein eingebettetes Dokumentfeld (Object Array), das Kommentarinformationen enthält und "_id" als eindeutigen Bezeichner verwendet. Dies ist der Code (Beachten Sie, dass ich mit Node.js mit extra mongoDB Bibliothek):MongoDB, Wie erhält man die ObjectId, die gerade im Embedded Dokument erstellt wurde?

db.update('posts', { 
    _id: new ObjectID(postId) 
}, { 
    $push: { 
     comments: { 
      _id: new ObjectID(), 
      author: comment.author, 
      email: comment.email, 
      text: comment.text 
     } 
    } 
}) ... 

Blick auf die $ schieben, können Sie sehen, dass ich neue ObjectId erstellt. Es funktioniert gut, aber ich möchte zurück senden _id, die nur einen Kommentar zum Client erstellt, so dass Client löschen oder bearbeiten kann ohne Seitenaktualisierung. Wie bekomme ich die _id, die gerade ein eingebettetes Dokument erstellt hat?

Antwort

0

Wie über sie zu Variablen einstellen, wenn Sie erstellen, um die ids:

var id1=new ObjectID(postId); 
var id2=new ObjectID(); 

db.update('posts', { _id: id1 }, 
{ $push: 
{ comments: { _id: id2, 
    author: comment.author, 
    email: comment.email, 
    text: comment.text } } }) ... 
+1

Brilliant Idea! Ich werde es versuchen. Vielen Dank! – modernator

+0

Danke! Es funktioniert perfekt. – modernator

+0

Als bitte geantwortet markieren. –

Verwandte Themen