Ho una situazione in cui devo iscrivermi alla stessa raccolta due volte. I due metodi di pubblicare nel mio codice lato server sono i seguenti:Meteor - abbonati alla stessa raccolta due volte - tieni separati i risultati?
Meteor.publish("selected_full_mycollection", function (important_id_list) {
check(important_id_list, Match.Any); // should do better check
// this will return the full doc, including a very long array it contains
return MyCollection.find({
important_id: {$in: important_id_list}
});
});
Meteor.publish("all_brief_mycollection", function() {
// this will return all documents, but only the id and first item in the array
return MyCollection.find({}, {fields: {
important_id: 1,
very_long_array: {$slice: 1}
}});
});
mio problema è che io non sto vedendo i documenti completi sul lato client dopo mi abbono a loro. Penso che questo sia dovuto al fatto che sono sovrascritti dal metodo che pubblica solo le brevi versioni.
Non voglio intasare la memoria del mio client con array lunghi quando non ne ho bisogno, ma li voglio disponibili quando ne ho bisogno.
La versione breve è sottoscritta all'avvio. La versione completa è sottoscritta quando l'utente visita un modello che esegue il drill down per ottenere ulteriori informazioni.
Come posso gestire correttamente questa situazione?
Link più preciso: https://book.discovermeteor.com/chapter/advanced-publications Mi ha aiutato a ottenere risultati simili. – oles