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

MeteorJS - Linker billeder (FS.collection) til deres relevante dokument i MongoDB Collection

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.




  1. Sådan forespørges mongodb med DBRef

  2. 4 måder at opdatere et dokument i MongoDB

  3. 'upsert' i et indlejret dokument

  4. MongoDB vælge og sammenkæde felter