私はマングーススキーマを定義していますが、定義は次のとおりです。
inventoryDetails: {
type: Object,
required: true
},
isActive:{
type:Boolean,
default:false
}
「オブジェクト」タイプを試しましたが、データが正常に保存されています。タイプを配列に変更すると、保存に失敗します。
サンプルデータ:
{
"inventoryDetails" : {
"config" : {
"count" : {
"static" : { "value" : "123" },
"dataSource" : "STATIC"
},
"title" : {
"static" : { "value" : "tik" },
"dataSource" : "STATIC"
}
},
"type" : "s-card-with-title-count"
}
}
「オブジェクト」タイプは、mongooseが許可するタイプの1つではありません。しかし、どのようにサポートされていますか?
データベースでObject
を取得するには、2つのオプションがあります。
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
}
}
}
})
私の実際のコードを見てください:
let UserSchema = new Schema({
//...
statuses: {
online: {
type: Boolean,
default: true
},
verified: {
type: Boolean,
default: false
},
banned: {
type: Boolean,
default: false
}
},
//...
})
このオプションを使用すると、オブジェクトのデータ構造を定義できます。
柔軟なオブジェクトデータ構造が必要な場合は、次を参照してください。
Schema.Types.Mixed
タイプを使用しますdoc からの例:
let YourSchema = new Schema({
inventoryDetails: Schema.Types.Mixed
})
let yourSchema = new YourSchema;
yourSchema.inventoryDetails = { any: { thing: 'you want' } }
yourSchema.save()