Ya itu mungkin, tetapi Anda memiliki beberapa opsi.
Opsi 1:C sebagai Subdokumen
Jika Anda benar-benar ingin menggunakan subdokumen, Anda tidak perlu membuat model terpisah. Anda perlu mengubah referensi ke array 'c'.
var C = new Schema({...});
var B = new Schema({c: [C]});
var A = new Schema({c: { type: ObjectId, ref: 'ModelB.c' });
var Model_A = mongoose.model('ModelA', A);
var Model_B = mongoose.model('ModelB', B);
Opsi 2:C sebagai Model
(Saya hanya menyajikan ini sebagai alternatif - karena contoh Anda tampaknya berlebihan karena Anda membuat 'C' sebagai Model terpisah serta subdokumen)
Atau, mungkin masuk akal untuk memiliki koleksi terpisah, Anda dapat membuat model luwak untuk masing-masing. Masing-masing akan menjadi koleksi terpisah:
var Model_A = mongoose.model('ModelA', A);
var Model_B = mongoose.model('ModelB', B);
var Model_C = mongoose.model('ModelC', C);
Dalam hal ini, Anda mungkin ingin merujuk langsung setiap model:
var C = new Schema({...});
var B = new Schema({c: { type: ObjectId, ref: 'ModelC' }});
var A = new Schema({c: { type: ObjectId, ref: 'ModelC' });
Intinya
Ya itu mungkin, tetapi Anda harus memilih apakah Anda ingin C sebagai model atau subdokumen.