Mentre leggevo la tua domanda mi sono detto che questa è una domanda molto facile, ma poi mi stavo grattando la testa. Ho cercato di capire un esempio che puoi semplicemente realizzare con sessioni o raccolte. Ma non ho trovato nessun caso d'uso. Quindi, iniziamo con il rollup delle cose. Fondamentalmente hai già risposto alla domanda da solo, perché è il poco zucchero a rendere le collezioni qualcosa di speciale.
Quando utilizzare una raccolta?
Fondamentalmente una raccolta è un artefatto di database. Immagina di avere un'applicazione client-server. Tutti i dati sono persistenti nella memoria lato server. Ora è possibile utilizzare una raccolta locale per fornire all'utente un piccolo sottoinsieme della raccolta dei server. Quindi una raccolta client è un database con una quantità ridotta di dati. Il vantaggio è che puoi accedere alla raccolta con le query. È possibile utilizzare le stesse query su server e client. Inoltre, una collezione contiene sempre più oggetti dello stesso tipo. A volte produci dati sul client per il cliente. Nessuna interazione con il server necessaria. Di quanto tu possa usare una collezione locale. Una raccolta locale offre le stesse funzionalità di una normale raccolta senza comunicazione con il server. Questo dovrebbe essere usato se si hanno più oggetti con la stessa struttura e in particolare se si desidera utilizzare gli operatori di query.
È anche possibile salvare i dati all'interno di un oggetto di sessione. Gli oggetti di sessione possono contenere anche più oggetti. Ma l'immagine si desidera trovare un oggetto in un objectarray indicizzato con un ID speciale. Di quanto tu abbia bisogno di iterare lancia l'intero array per trovare questo oggetto. Devi scrivere logica aggiuntiva, che può essere gestita con la raccolta come per magia. Inoltre, le raccolte restituiscono i cursori. Un cursore è un oggetto reattivo che cambia solo se i dati selezionati cambiano. Ciò significa che se utilizzi trova con un ID. Di questo oggetto si eseguono nuovamente i rerender quando l'oggetto di questo ID cambia. Con la sessione non puoi. Quando una sessione cambia, devi rerenderizzare tutti gli oggetti dipendenti.
Quando utilizzare una sessione?
Per tutto il resto. Le sessioni sono spesso solo piccoli oggetti che contengono alcune logiche di configurazione.Fondamentalmente è solo un oggetto e non un'apparizione multipla di oggetti uguali. Non ho tempo ora di entrare nei dettagli, ma se non si adatta ai casi di utilizzo della collezione è possibile utilizzare le sessioni.
Dai un'occhiata al post this che descrive il motivo per cui le sessioni non devono essere sovrautilizzate.
Meteor ti impedisce di inserire il lato client dei documenti a meno che tu non abbia l'ID, che non avrai. – jononomo