Ja, het is mogelijk, maar je hebt een paar opties.
Optie 1:C als subdocument
Als je echt subdocumenten wilt gebruiken, hoef je geen apart model aan te maken. U moet uw verwijzing naar de 'c'-array wijzigen.
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);
Optie 2:C als model
(Ik presenteer dit alleen als alternatief - aangezien uw voorbeeld overbodig lijkt omdat u 'C' als een afzonderlijk model en als een subdocument maakt)
Als alternatief kan het zinvol zijn om afzonderlijke collecties te hebben, u kunt voor elk een mangoestmodel maken. Elk zal een aparte verzameling zijn:
var Model_A = mongoose.model('ModelA', A);
var Model_B = mongoose.model('ModelB', B);
var Model_C = mongoose.model('ModelC', C);
In dit geval wilt u misschien rechtstreeks naar elk model verwijzen:
var C = new Schema({...});
var B = new Schema({c: { type: ObjectId, ref: 'ModelC' }});
var A = new Schema({c: { type: ObjectId, ref: 'ModelC' });
Het punt
Ja, het is mogelijk, maar je moet kiezen of je C als model of subdocument wilt.