Отговорът е да промените вашата схема.
Попаднали сте в капана, който много разработчици имат пред вас, когато влизат в разработването на база данни за документи от история на използване на релационни бази данни:MongoDB не е релационна база данни и не трябва да се третира като такава.
Трябва да спрете да мислите за външни ключове и перфектно нормализирани данни и вместо това да поддържате всеки документ възможно най-самостоятелен, като мислите как най-добре да вградите съответните свързани данни във вашите документи.
Това не означава, че не можете да поддържате и асоциации. Това може да означава структура като тази, в която вграждате само необходимите детайли и при нужда отправяте заявка за пълния запис:
var activitySchema = new mongoose.Schema({
event: {
_id: { type: ObjectId, ref: "Event" },
name: String,
private: String
},
// ... other fields
});
Преосмислянето на вашата стратегия за вграждане ще много опростете заявките си и сведете броя на заявките до минимум. populate
бързо ще увеличи броя ви и с нарастването на набора ви от данни това много вероятно ще се превърне в проблем.