Ano, je to možné, ale máte několik možností.
Možnost 1:C jako vnořený dokument
Pokud opravdu chcete používat vnořené dokumenty, nemusíte vytvářet samostatný model. Musíte změnit svůj odkaz na pole '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);
Možnost 2:C jako model
(Uvádím to pouze jako alternativu - protože váš příklad se zdá nadbytečný, protože vytváříte 'C' jako samostatný model i jako dílčí dokument)
Alternativně může mít smysl mít samostatné kolekce, pro každou můžete vytvořit model mongoose. Každá bude samostatnou sbírkou:
var Model_A = mongoose.model('ModelA', A);
var Model_B = mongoose.model('ModelB', B);
var Model_C = mongoose.model('ModelC', C);
V tomto případě můžete chtít přímo odkazovat na každý model:
var C = new Schema({...});
var B = new Schema({c: { type: ObjectId, ref: 'ModelC' }});
var A = new Schema({c: { type: ObjectId, ref: 'ModelC' });
The Point
Ano, je to možné, ale musíte si vybrat, zda chcete C jako model nebo vnořený dokument.