MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come limitare i valori utilizzando il tipo di dati misto in Mongoose?

È meglio evitare le chiavi dinamiche, se possibile, poiché rendono tutto più difficile. Invece di usare Mixed , dai al campo più struttura creando myModel un array che contiene una key dinamica valore e una stringa value campo convalidato utilizzando enum :

myModel: [{
    key: String,
    value: {
        type: String, 
        enum: ['Restricted value 1', 'Restricted value 2', 'Restricted value 3']
    }
}]

Il tuo documento di esempio diventerebbe:

myModel: [
    { key: "Dynamic Key 1", value: "Restricted value 1" },
    { key: "Dynamic Key 2", value: "Restricted value 2" },
    { key: "Dynamic Key 3", value: "Restricted value 3" }
]