MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mungo – ObjectId, die auf ein untergeordnetes Dokument verweist

Ja, es ist möglich, aber Sie haben einige Möglichkeiten.

Option 1:C als Unterdokument

Wenn Sie wirklich Filialdokumente verwenden möchten, müssen Sie kein separates Modell erstellen. Sie müssen Ihre Referenz auf das 'c'-Array ändern.

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); 

Option 2:C als Modell

(Ich stelle dies nur als Alternative vor - da Ihr Beispiel überflüssig erscheint, da Sie 'C' sowohl als separates Modell als auch als Unterdokument erstellen)

Alternativ kann es sinnvoll sein, getrennte Sammlungen zu haben, Sie können für jede ein Mungo-Modell erstellen. Jede wird eine separate Sammlung sein:

var Model_A = mongoose.model('ModelA', A);  
var Model_B = mongoose.model('ModelB', B);  
var Model_C = mongoose.model('ModelC', C);

In diesem Fall möchten Sie vielleicht direkt auf jedes Modell verweisen:

var C = new Schema({...});  
var B = new Schema({c: { type: ObjectId, ref: 'ModelC' }});  
var A = new Schema({c: { type: ObjectId, ref: 'ModelC' }); 

Der Punkt

Ja, das ist möglich, aber Sie müssen auswählen, ob Sie C als Modell oder Unterdokument verwenden möchten.