私はSails/Waterlineを使ってMongoDBにユーザ入力を保存していますが、フィールドのタイプが設定に依存しているため、データを保存する最良の方法を理解するのが難しいと感じています。セイルズ/ウォーターラインモデルヘルプ - 配列、jsonまたは文字列のデータをどのように保存できますか?
「surveyField」モデルは次のようである:
// SURVEY FORM FIELD DEFINITIONS
module.exports = {
attributes: {
name: {
type: 'string',
required: true
},
label: {
type: 'string',
required: true
},
constraints: {
type: 'string',
enum: ['none', 'unique', 'combo', 'same'],
required: true,
defaultsTo: 'none'
},
isRequired: {
type: 'boolean',
required: true,
defaultsTo: false
},
attributeType: {
type: 'string',
enum: ['boolean', 'text', 'localizedText', 'enum', 'localizedEnum', 'number', 'money', 'date', 'time', 'dateTime'],
required: true
}
}
}
ユーザーがフォームにこれらのフィールドの任意の数を追加しますので、その形状は、彼らが選択したフィールドのタイプへの参照を含むことになります。フォームが構築されるとき、私はこの情報に基づいて各フィールドを処理/表示する方法を正確に知っていますが、そのモデルは値フィールドの型を取る必要があるため、情報を保存することはやや難しいと判明しています。
よう「surveyData」モデルが見えます:値が文字列であるかもしれないか、それはJSONかもしれない...または他の'standard data types.'
いずれかの任意の時に問題が発生
module.exports = {
attributes: {
value: {
**type: 'string' // THIS IS WHERE THE ISSUE IS**
},
surveyFieldType: {
model: 'surveyFieldType',
required: true
},
survey: {
model: 'survey',
required: true
},
user: {
model: 'user',
required: true
}
}
}
これについての助けは大いに感謝されるでしょう。
** EDIT **
私も同様に検索可能に、この値が必要になります。