我是NOSQL和MongoDB的新手,我正在使用NodeJS和Mongoose构建应用程序,我正在为新集合构建一个mongoose模式。
这个集合的文档将有一些标准字段(id,创建日期,用户等...)但是我需要存储其他东西,这是一个“数据”字段,必须包含不同的数据,具体取决于该文件。该值有时是简单的文本,有时它会有很多键/值对。
我想知道这种存储需求的最佳解决方案是什么:
只创建一个带有String类型的“data”字段,然后将不同类型的数据放入其中(简单值的文本,更复杂数据的字符串化对象)
在模型中创建我的“更复杂数据”可能具有的所有可能字段,并仅使用我在每个文档中需要的字段
- 其他
这种事情的最佳做法是什么?
答案 0 :(得分:2)
尝试使用Mixed schemaType,我认为这就是你要找的东西: http://mongoosejs.com/docs/schematypes.html
答案 1 :(得分:1)
这一个:
在模型中创建我的“更复杂数据”可能具有的所有可能字段,并仅使用我在每个文档中需要的字段
将架构的标准字段标记为required: true
,并将其余字段保留为可选。这样您就可以获得所需的灵活性,而不会失去验证,转换和更改检测的Mongoose优势。