Dette er et almindeligt tilfælde i Meteor/Mongo, hvor du ønsker at relatere to samlinger. mongo docs har et godt indlæg om dette.
Lad os sige, at hvert sted kan have mange billeder. Du kan enten sætte en henvisning til stedet inde i billedet eller henvise til de mange billeder fra stedet.
Når du opretter et billede i collectionFS (udelader detaljerne), skal du sørge for at beholde _id
af billedet:
imgId = image.insert();
Hvis du vil have billedet til at henvise til stedet, kan du derefter opdatere billedet med:
image.update({ _id: imgId },{ $set: { placeId: myPlace._id }});
eller du kan $push
imgId
på en række billeder inde i dit sted:
Places.update({ _id: myPlace._id },{ $push: { imageArray: imgId }});
Den anden referenceform er en smule mere fleksibel, idet det samme billede kan høre til flere steder (mange-til-mange). Dette er godt for indlejrede steder, for eksempel et billede af Times Square er både et billede af Times Square og et billede af New York City og så videre.
Uanset hvad kan du tilmelde dig dit image
og Places
samlinger ved hjælp af reywood:publish-composite
pakke, som er designet til nem udgivelse af relaterede samlinger.
Bemærk også, at en fælles konvention for navngivning af samlinger i Meteor er første bogstav med stort og pluralform . dvs. Billeder i stedet for billede . Dette skyldes, at samlinger er globale variabler i Meteor, og en samling rummer mange af de ting, den er opkaldt efter.