Řešením je změnit schéma.
Spadli jste do pasti, kterou má před vámi mnoho vývojářů, když vstoupili do vývoje databází dokumentů z historie používání relačních databází:MongoDB není relační databáze a nemělo by se s ní tak zacházet.
Musíte přestat přemýšlet o cizích klíčích a dokonale normalizovaných datech a místo toho ponechat každý dokument co možná nejsamostatnější a přemýšlet o tom, jak nejlépe vložit relevantní přidružená data do vašich dokumentů.
To neznamená, že nemůžete udržovat také asociace. Může to znamenat strukturu podobnou této, do které vložíte pouze nezbytné podrobnosti a v případě potřeby se dotážete na celý záznam:
var activitySchema = new mongoose.Schema({
event: {
_id: { type: ObjectId, ref: "Event" },
name: String,
private: String
},
// ... other fields
});
Přehodnocení strategie vkládání bude skvěle zjednodušte své dotazy a omezte počet dotazů na minimum. populate
rychle vybuchne váš počet a jak bude vaše datová sada narůstat, velmi pravděpodobně to bude problém.