Да, възможно е, но имате няколко възможности.
Опция 1:C като поддокумент
Ако наистина искате да използвате поддокументи, не е необходимо да създавате отделен модел. Трябва да промените препратката си към масива '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);
Вариант 2:C като модел
(Представям това само като алтернатива - тъй като вашият пример изглежда излишен, тъй като създавате „C“ като отделен модел, както и като поддокумент)
Като алтернатива може да има смисъл да имате отделни колекции, можете да създадете мангуст модел за всяка. Всяка ще бъде отделна колекция:
var Model_A = mongoose.model('ModelA', A);
var Model_B = mongoose.model('ModelB', B);
var Model_C = mongoose.model('ModelC', C);
В този случай може да искате да посочите директно всеки модел:
var C = new Schema({...});
var B = new Schema({c: { type: ObjectId, ref: 'ModelC' }});
var A = new Schema({c: { type: ObjectId, ref: 'ModelC' });
Точката
Да, възможно е, но трябва да изберете дали искате C като модел или поддокумент.