Ja det är möjligt, men du har några alternativ.
Alternativ 1:C som ett underdokument
Om du verkligen vill använda underdokument behöver du inte skapa en separat modell. Du måste ändra din referens till 'c'-matrisen.
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);
Alternativ 2:C som modell
(Jag presenterar bara detta som ett alternativ - eftersom ditt exempel verkar överflödigt eftersom du skapar 'C' som en separat modell såväl som ett underdokument)
Alternativt kan det vara vettigt att ha separata samlingar, du kan skapa en mangustmodell för varje. Var och en kommer att vara en separat samling:
var Model_A = mongoose.model('ModelA', A);
var Model_B = mongoose.model('ModelB', B);
var Model_C = mongoose.model('ModelC', C);
I det här fallet kanske du vill referera direkt till varje modell:
var C = new Schema({...});
var B = new Schema({c: { type: ObjectId, ref: 'ModelC' }});
var A = new Schema({c: { type: ObjectId, ref: 'ModelC' });
Poängen
Ja, det är möjligt, men du måste välja om du vill ha C som modell eller underdokument.