sql >> Database >  >> NoSQL >> MongoDB

MeteorJS - Afbeeldingen (FS.collection) koppelen aan hun relevante document in de MongoDB-collectie

Dit is een veelvoorkomend geval in Meteor/Mongo waar je twee collecties met elkaar in verband wilt brengen. De mongo-documenten schrijf hier goed over.

Laten we zeggen dat elke plaats veel afbeeldingen kan hebben. Je kunt een verwijzing naar de plaats in de afbeelding plaatsen of verwijzen naar de vele afbeeldingen van de plaats.

Wanneer u een afbeelding maakt in collectionFS (laat de details weg), zorg er dan voor dat u de _id bewaart van de afbeelding:

imgId = image.insert();

Als u wilt dat de afbeelding naar de plaats verwijst, kunt u de afbeelding bijwerken met:

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

of je kunt $push imgId op een reeks afbeeldingen in uw huis:

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

De tweede vorm van verwijzing is iets flexibeler omdat hetzelfde beeld op meerdere plaatsen kan behoren (veel-op-veel). Dit is goed voor geneste plaatsen, bijvoorbeeld een foto van Times Square is zowel een foto van Times Square en een foto van New York City enzovoort.

Hoe dan ook, je kunt meedoen je image en Places collecties met behulp van de reywood:publish-composite pakket dat is ontworpen voor het eenvoudig publiceren van gerelateerde collecties.

Merk ook op dat een algemene conventie voor het benoemen van collecties in Meteor is eerste letter met een hoofdletter en meervoud . d.w.z. Afbeeldingen in plaats van afbeelding . Dit komt omdat verzamelingen globale variabelen zijn in Meteor en een verzameling veel dingen bevat waarnaar deze is vernoemd.




  1. MongoDb near/geonear query met variabele afstand

  2. App werkt in ontwikkeling, maar niet wanneer ingezet op heroku

  3. MongoDB's ISODate() versus UNIX-tijdstempel

  4. Mongodb c#-stuurprogramma en ISODate