sql >> Databáze >  >> NoSQL >> MongoDB

MeteorJS - Propojování obrázků (FS.collection) s příslušným dokumentem ve sbírce MongoDB

Toto je běžný případ v Meteor/Mongo, kdy chcete spojit dvě kolekce. mongo dokumenty dobře se o tom popiš.

Řekněme, že každé místo může mít mnoho obrázků. Můžete buď vložit odkaz na místo do obrázku, nebo odkazovat na mnoho obrázků z místa.

Když vytváříte obrázek v kolekci collectionFS (vynecháte-li specifika), nezapomeňte zachovat _id obrázku:

imgId = image.insert();

Pokud chcete, aby obrázek odkazoval na místo, můžete obrázek aktualizovat pomocí:

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

nebo můžete $push imgId na pole obrázků uvnitř vašeho místa:

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

Druhá forma reference je o něco flexibilnější v tom, že stejný obrázek může patřit na více míst (many-to-many). To je dobré pro vnořená místa, například obrázek Times Square je oba obrazem Times Square a obrázek New York City a tak dále.

V obou případech se můžete připojit váš image a Places sbírky pomocí reywood:publish-composite balíček, který je navržen pro snadné publikování souvisejících sbírek.

Všimněte si také, že běžná konvence pro pojmenování kolekcí v Meteoru je první písmeno velké a množné číslo . tj. Obrázky místo obrázku . Je to proto, že kolekce jsou globální proměnné v Meteoru a kolekce obsahuje mnoho věcí, po kterých je pojmenována.




  1. Geoprostorový dotaz MongoDB s $not

  2. Najděte záznamy z doby před 7 dny ode dneška v MongoDB

  3. Existuje způsob, jak vynutit referenční integritu v MongoDB

  4. Převod DBObject na Java Object při načítání hodnot z MongoDB