我正在建立一个休息api,允许用户提交和检索调查产生的数据:问题不是强制性的,每个人都提交"可能彼此不同。每个提交都是一个带有数据的json和一个"调查ID":
{
id: abc123,
surveyid: 123,
array: [],
object: {}
...
}
我必须存储这些数据并允许检索和查询。
第一种方法:不使用模式并将所有内容放在一个集合中:它可以工作,但每个json字段都被视为"字符串"并且对数值进行查询是有问题的。
第二种方法:为每个调查获取问题数据类型,在json文件上创建/保存mongoose模式,然后保持更新此文件。 像这样的东西,其中入口"架构:{}"表示用于插入和查询/检索数据的mongoose模式。
[
{
"surveyid" : "123",
"schema" : {
"name": "string",
"username" : "string",
"value" : "number",
"start": "date",
"bool" : "boolean",
...
}
},
{ ... }
]
希望这很清楚,我提出了一些问题:
现在我已经为所有"提交了一个集合"一切都被视为一个字符串。我可以使用mongoose模式,而不进行其他修改,以指定某些字段是数字(或日期或其他)?它是允许的,还是一个好主意?
使用外部json文件有什么不利之处吗? Mongoose模式在请求时在运行时加载,或者在更新此文件时是否需要重新启动服务?
如何使用"架构存储数据"那经常会改变吗?
我希望它清楚!
谢谢!