2016-04-30 6 views
1

Grundsätzlich was der Titel sagt. Ich habe dies in einem Schema:Abwahl eines Arrays in Mungo in Schema-Definition

meta: [{ 
    event: {type: Schema.Types.ObjectId, ref: 'Event', required: true, unique: true}, 
    views: {type: Number, default: 0}, 
    clicks: {type: Number, default: 0} 
}] 

ich standardmäßig definieren will nicht Mungo auf das Feld auszuwählen. Etwas wie:

otherField: {type: String, select: false} 

Ich habe dies versucht, aber es hat nicht funktioniert:

meta: { 
    type: [{ 
     event: {type: Schema.Types.ObjectId, ref: 'Event', required: true, unique: true}, 
     views: {type: Number, default: 0}, 
     clicks: {type: Number, default: 0} 
    }], 
    select: false 
} 

Ist es sogar möglich, komplexe Arrays auf Schemaerstellung zu deaktivieren? Ich weiß sicher, dass das funktioniert:

meta: {type: Array, select: false} 

aber auf diese Weise das Schema nicht richtig definiert ist.

+0

ich den Code versucht, das Sie sagen: „Ich habe versucht, dies aber es hat nicht funktioniert ", und es ausgeschlossen' meta' von jeder 'find' Ausgabe standardmäßig gut. Dies ist mit Mongoose 4.4.14. – JohnnyHK

+0

vielleicht, aber versuchen Sie, Elemente zur Liste hinzuzufügen, das hat nicht funktioniert. –

+0

Können Sie Ihre Frage aktualisieren, um den Code einzuschließen, den Sie zum Hinzufügen von Elementen zur Liste verwenden? – JohnnyHK

Antwort

0

, was Sie tun können, ist ein neues Unter Schema

var metaSchema = new mongoose.Schema({ 
    event: {type: Schema.Types.ObjectId, ref: 'Event', required: true, unique: true}, 
    views: {type: Number, default: 0}, 
    clicks: {type: Number, default: 0} 
}); 

und verwenden Sie es mit select zu erstellen: false

meta: {type: [metaSchema], select: false}