Това е често срещан случай в Meteor/Mongo, когато искате да свържете две колекции. монго документи имам добър коментар за това.
Да кажем, че всяко място може да има много изображения. Можете или да поставите препратка към мястото вътре в изображението, или да препратите към многото изображения от мястото.
Когато създавате изображение в collectionFS (като оставите спецификата), не забравяйте да запазите _id
на изображението:
imgId = image.insert();
Ако искате изображението да препраща към мястото, можете да актуализирате изображението с:
image.update({ _id: imgId },{ $set: { placeId: myPlace._id }});
или можете да $push
imgId
върху масив от изображения във вашето място:
Places.update({ _id: myPlace._id },{ $push: { imageArray: imgId }});
Втората форма на справка е малко по-гъвкава, тъй като едно и също изображение може да принадлежи на множество места (много към много). Това е добре за вложени места, например снимка на Таймс Скуеър едновременно е снимка на Таймс Скуеър и снимка на Ню Йорк и така нататък.
И в двата случая можете да присъедините вашето image
и Places
колекции, използващи reywood:publish-composite
пакет, предназначен за лесно публикуване на свързани колекции.
Обърнете внимание също, че има обща конвенция за именуване на колекции в Метеор е първата буква главна и форма за множествено число . т.е. Изображения вместо изображение . Това е така, защото колекциите са глобални променливи в Meteor и колекцията съдържа много от нещата, на които е кръстена.