Jest to częsty przypadek w Meteor/Mongo, gdzie chcesz powiązać dwie kolekcje. mongo docs miej dobry opis na ten temat.
Powiedzmy, że każde miejsce może mieć wiele obrazów. Możesz umieścić odniesienie do miejsca wewnątrz obrazu lub odwołać się do wielu obrazów z tego miejsca.
Kiedy tworzysz obraz w collectionFS (pomijając szczegóły), upewnij się, że zachowałeś _id
obrazu:
imgId = image.insert();
Jeśli chcesz, aby obraz odnosił się do miejsca, możesz zaktualizować obraz za pomocą:
image.update({ _id: imgId },{ $set: { placeId: myPlace._id }});
lub możesz $push
imgId
na tablicę obrazów w Twoim miejscu:
Places.update({ _id: myPlace._id },{ $push: { imageArray: imgId }});
Druga forma odniesienia jest nieco bardziej elastyczna, ponieważ ten sam obraz może należeć do wielu miejsc (wiele do wielu). Jest to dobre dla zagnieżdżonych miejsc, na przykład zdjęcia Times Square jest zarówno obrazem Times Square i zdjęcie Nowego Jorku i tak dalej.
Tak czy inaczej możesz dołączyć Twój image
i Places
kolekcje przy użyciu reywood:publish-composite
pakiet przeznaczony do łatwego publikowania powiązanych kolekcji.
Zwróć też uwagę na powszechną konwencję nazywania kolekcji w Meteor jest pierwsza litera pisana wielką literą i forma mnoga . czyli Obrazy zamiast obrazu . Dzieje się tak dlatego, że kolekcje są globalnymi zmiennymi w Meteorze, a kolekcja zawiera wiele rzeczy, od których pochodzi nazwa.