Ini adalah kasus umum di Meteor/Mongo di mana Anda ingin menghubungkan dua koleksi. mongo docs memiliki tulisan yang bagus tentang ini.
Katakanlah setiap tempat dapat memiliki banyak gambar. Anda dapat menempatkan referensi ke tempat di dalam gambar atau merujuk ke banyak gambar dari tempat tersebut.
Saat Anda membuat gambar di collectionFS (mengabaikan spesifikasinya), pastikan untuk menyimpan _id
dari gambar:
imgId = image.insert();
Jika Anda ingin gambar tersebut merujuk ke tempat tersebut, Anda dapat memperbarui gambar dengan:
image.update({ _id: imgId },{ $set: { placeId: myPlace._id }});
atau Anda dapat $push
imgId
ke array gambar di dalam tempat Anda:
Places.update({ _id: myPlace._id },{ $push: { imageArray: imgId }});
Bentuk referensi kedua sedikit lebih fleksibel karena gambar yang sama dapat dimiliki oleh banyak tempat (banyak ke banyak). Ini bagus untuk tempat bersarang, misalnya gambar Times Square keduanya adalah gambar Times Square dan gambar Kota New York dan seterusnya.
Apa pun itu, Anda dapat bergabung image
Anda dan Places
koleksi menggunakan reywood:publish-composite
paket yang dirancang untuk memudahkan penerbitan koleksi terkait.
Perhatikan juga bahwa konvensi umum untuk penamaan koleksi di Meteor huruf pertama dikapitalisasi dan bentuk jamak . yaitu Gambar bukannya gambar . Ini karena koleksi adalah variabel global di Meteor dan koleksi menyimpan banyak hal yang dinamai menurut namanya.