【发布时间】:2018-06-15 01:19:57
【问题描述】:
我正在使用 mongodb 和 node.js 迈出第一步,我对 mongoose 和存储接收到的数据有一些疑问。
我正在尝试制作一个带有端点的 REST API,用于以 json 格式提交(POST)“东西”。 我会将这些“东西”存储在 mongodb 中,但我没有精确的架构:提交的数据都是相似且相关的,但其中一些可能因某些字段而异。
例如,我可以收到:
object_1
{
field1: value1
field2: value2
}
object_2
{
field1: value1
field3: value3
}
它们在某种程度上相似,它们都代表相同的对象类型,它们只是缺少一些字段(如 null 或其他)。
阅读了一些文档和教程,我看到猫鼬需要一个“模式”,比如
var mySchema = mongoose.Schema({
foo: String
bar: String
});
如果我没有固定架构怎么办?我可以在不使用架构的情况下将“object_1”和“object_2”存储在同一个集合中(因为它们是相关的)吗?
谢谢!
编辑:
需要明确的是,提交的json来自调查,例如:
{
// standard/default fields
id: 2,
date: 'timestamp',
surveyId: 13,
...
// here starts non-standard fields list
}
每个调查都有许多字段,但并非每个字段都是强制性的,有时字段可能留空(或为空),并且根本不包含在 json 正文中。在一个提交中我可能有 {field1, field2, field3},在下一个 {field1, field3, field4, field5} 等等......
其中一些是标准的,如 id、datetime 和其他一些。我可以在我的架构中声明它们,但是其他的呢?
我希望它很清楚!
谢谢!
【问题讨论】:
-
通常不建议在对象中使用动态键,因为之后您将无法轻松检索它们。您能否举一个更具体的例子说明您为什么要这样做?
-
当然,它们基本上是来自某个调查的数据,每个提交可能有一些字段,另一个可能有其他字段。每个都有一些标准字段(如 id、survey_id、datetime 和其他一些)。我正在编辑第一篇文章
标签: javascript node.js mongodb mongoose