Je définis un schéma mangouste et sa définition est la suivante:
inventoryDetails: {
type: Object,
required: true
},
isActive:{
type:Boolean,
default:false
}
J'ai essayé le type "Objet" et je constate que mes données sont enregistrées avec succès. Lorsque j'ai changé de type en tableau, la sauvegarde échoue.
Exemple de données:
{
"inventoryDetails" : {
"config" : {
"count" : {
"static" : { "value" : "123" },
"dataSource" : "STATIC"
},
"title" : {
"static" : { "value" : "tik" },
"dataSource" : "STATIC"
}
},
"type" : "s-card-with-title-count"
}
}
Le type "objet" ne fait pas partie des types autorisés par les mangoustes. Mais comment est-il soutenu?
Vous avez deux options pour obtenir votre Object
dans la base de données:
let YourSchema = new Schema({
inventoryDetails: {
config: {
count: {
static: {
value: {
type: Number,
default: 0
},
dataSource: {
type: String
}
}
}
},
myType: {
type: String
}
},
title: {
static: {
value: {
type: Number,
default: 0
},
dataSource: {
type: String
}
}
}
})
Jetez un oeil à mon vrai code:
let UserSchema = new Schema({
//...
statuses: {
online: {
type: Boolean,
default: true
},
verified: {
type: Boolean,
default: false
},
banned: {
type: Boolean,
default: false
}
},
//...
})
Cette option vous donne la possibilité de définir la structure de données de l'objet.
Si vous souhaitez une structure de données d'objet flexible, consultez la suivante.
Schema.Types.Mixed
typeExemple tiré de doc :
let YourSchema = new Schema({
inventoryDetails: Schema.Types.Mixed
})
let yourSchema = new YourSchema;
yourSchema.inventoryDetails = { any: { thing: 'you want' } }
yourSchema.save()