2016-08-03 8 views
0

Falls Sie Struktur nächsten Daten:Mongoose, die sich auf Objekte in der Sammlung

const branchSchema = mongoose.Schema({ name: String }); 
const Company = mongoose.model('Company', mongoose.Schema({ 
    name: String, 
    branches: [branchSchema] 
})); 

Wie würden Sie Mungo sagen Modell zu verwenden, um von Company ‚s branches Array während Bevölkerung?

const Item = mongoose.model('Item', mongoose.Schema({ 
    name: String, 
    branch: {type: mongoose.Schema.ObjectId, ref: 'Company.branches'} 
})); 
+0

Möchten Sie basierend auf einigen Kriterien auf alle Zweige im Unternehmensmodell oder nur auf bestimmte Zweige zugreifen? –

+0

Ich brauche nur eine Verzweigung, basierend auf der '_id'-Verzweigung, die in der Entität' Item' gespeichert ist. –

Antwort

0

Um das gewünschte Verhalten zu erhalten, können Sie einen separaten Zweig Modell erstellen und dann würde Ihr Einzelteilmodell wie folgt aussehen:

const Item = mongoose.model('Item', mongoose.Schema({ 
    name: String, 
    branch: {type: mongoose.Schema.ObjectId, ref: 'Branch'} 
})); 

Ihr Firmen Schema wie dies auch aussehen:

const branchSchema = mongoose.Schema({ name: String }); 
const Company = mongoose.model('Company', mongoose.Schema({ 
    name: String, 
    branches: [{type: mongoose.Schema.ObjectId, ref: 'Branch'}] 
})); 

Dann, um die Informationen zu Branchen zu erhalten, wenn Sie einen Fund durchführen, würden Sie .populate() verwenden.