MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MeteorJS - Łączenie obrazów (FS.collection) z odpowiednimi dokumentami w kolekcji MongoDB

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.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. i18Next - NodeJS - Jak zmienić tłumaczenia bez przeładowywania serwera

  2. Instalacja/konfiguracja Mongos w Elastic Beanstalk

  3. Przegląd Atlasu MongoDB:część pierwsza

  4. $filter wewnątrz $project MongoDB przy użyciu Spring Data

  5. Mongo DB Design, osadzanie a relacje