2017-01-31 4 views
-1

Ich möchte neue Einträge zu Meteor Veröffentlichung basierend auf bereits gefundenen Eintrag hinzufügen. Ich habe etw so:Hinzufügen von Einträgen basierend auf gefundenen Eintrag in Meteor Veröffentlichung

Meteor.publish("thoughts", function (_id) { 
    Thoughts 
     .find({_id}) 
     .forEach(function(entry) { 
      /* here I want to add new thoughts which should be also published 
       basing on value of field 'classes' from 'entry' object */ 
     }); 
    this.ready(); 
}); 

Wie kann ich es verwalten?

// bearbeiten

Okay, noch einmal: mein erstes Objekt wie folgt aussieht:

{ 
    "_id" : "XCauSwJ4Rm6Ap3yGr", 
    "classes" : [ 
     "NHfWy7qaygkkt778b" //id of the second object (from the same collection) 
    ], 
    /* other fields */ 
} 

Die zweite wie ist:

{ 
    "_id" : "NHfWy7qaygkkt778b", 
    /* other fields */ 
} 

I erhalten möchten beide sie (als Parellelleinträge), die nur _id des ersten kennen.

+1

Sie so etwas wie https://github.com/englue/meteor-publish-composite – chazsolo

Antwort

0
Meteor.publish('thoughts',function(id){ 
    return Thoughts.find({_id:id},{fields:{'classes':1}}); 
}) 

das gleiche auf Vorlage abonnieren, indem

Template.tmplName.onCreated(function(){ 
    this.autorun(()=>{ 
     this.subscribe('thoughts',id); // id is the one you are giving to publication; 
    }) 

}) 
+0

Zuerst überprüfen konnte, Ihre Syntax falsch ist, ist das nicht richtiges JS-Objekt. Zweitens gibt es auch nach dem Hinzufügen von Klammern immer noch einen Fehler - was genau "Felder" tun sollten? Und drittens fühle ich, dass ich immer noch nicht gut verstanden werde - ich habe es noch einmal bearbeitet. –

+0

Sie brauchten nur Klassen Ich dachte, wenn Sie nicht verstehen, sollten Sie wahrscheinlich ein wenig mehr Idee geben, was die Ausgabe, die Sie suchen. Ein Beispiel-Ausgabe-Code wahrscheinlich –

+0

Ich bearbeitet meine Post noch einmal - ich möchte zwei Ergebnisse erhalten, die erste sollte das erste Objekt sein, das ich eingefügt habe (mit ID 'XCauSwJ4Rm6Ap3yGr') und das zweite - das zweite Objekt (mit id 'NHfWy7qaygkkt778b'). Ich hoffe ich bin jetzt klar ... –

Verwandte Themen