MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MeteorJS - Collegamento di immagini (FS.collection) al relativo documento nella Collezione MongoDB

Questo è un caso comune in Meteor/Mongo in cui vuoi mettere in relazione due raccolte. I documenti mongo avere un buon resoconto su questo.

Diciamo che ogni luogo può avere molte immagini. Puoi inserire un riferimento al luogo all'interno dell'immagine o fare riferimento alle numerose immagini del luogo.

Quando crei un'immagine in collectionFS (tralasciando le specifiche), assicurati di mantenere il _id dell'immagine:

imgId = image.insert();

Se vuoi avere l'immagine, fai riferimento al luogo in cui puoi aggiornare l'immagine con:

image.update({ _id: imgId },{ $set: { placeId: myPlace._id }});

oppure puoi $push imgId su una serie di immagini all'interno del tuo posto:

Places.update({ _id: myPlace._id },{ $push: { imageArray: imgId }});

La seconda forma di riferimento è un po' più flessibile in quanto la stessa immagine può appartenere a più luoghi (da molti a molti). Questo è utile per i luoghi nidificati, ad esempio un'immagine di Times Square è sia una foto di Times Square e una foto di New York City e così via.

In ogni caso puoi unirti la tua image e Places raccolte utilizzando reywood:publish-composite pacchetto progettato per pubblicare facilmente le raccolte correlate.

Nota anche che una convenzione comune per la denominazione di raccolte in Meteor è la prima lettera maiuscola e forma plurale . cioè Immagini invece di immagine . Questo perché le raccolte sono variabili globali in Meteor e una raccolta contiene molte delle cose da cui prende il nome.