Jawabannya adalah mengubah skema Anda.
Anda telah jatuh ke dalam perangkap yang dimiliki banyak pengembang sebelum Anda memasuki pengembangan database dokumen dari riwayat penggunaan database relasional:MongoDB bukan database relasional dan tidak boleh diperlakukan seperti itu.
Anda harus berhenti memikirkan kunci asing dan data yang dinormalisasi dengan sempurna, dan sebagai gantinya, simpan setiap dokumen selengkap mungkin, pikirkan tentang cara terbaik untuk menyematkan data terkait yang relevan di dalam dokumen Anda.
Ini tidak berarti Anda tidak dapat mempertahankan asosiasi juga. Ini mungkin berarti struktur seperti ini, di mana Anda hanya menyematkan detail yang diperlukan, dan meminta catatan lengkap saat diperlukan:
var activitySchema = new mongoose.Schema({
event: {
_id: { type: ObjectId, ref: "Event" },
name: String,
private: String
},
// ... other fields
});
Memikirkan kembali strategi penyematan Anda akan sangat sederhanakan kueri Anda dan pertahankan jumlah kueri seminimal mungkin. populate
akan mempercepat hitungan Anda, dan seiring bertambahnya dataset Anda, hal ini kemungkinan besar akan menjadi masalah.