产品系统的mongoose根据产品types具有不同的属性

我正在构build一个小的产品系统,试图让我进入Node.js,Mongo等等。 我被Mongo吸引到了将不同types的产品存储在同一个集合中的可能性,而不是将多个表,eav或者任何其他不太适合的MySQL方法。

我正在阅读教程,刚开始写了一个产品模型的提供者,但后来有人build议我应该使用mongoose。

但是,Mongoose的问题似乎是我需要为每个模型设置模式。 我的第一个想法是,产品应该有一个title和一个type属性。 然后type将决定整体产品结构。 因此,例如dvd产品可能有导演,而t-shirt产品不会有导演,但会有不同的尺寸。

是否有可能在Mongoose中实现这种结构,以及如何实现? 这是我的理解,如果我提供每个产品types的架构,我将无法同时查询它们? 不同的模式是不同的收集? – 我不明白这一点。

任何帮助和指导的赞赏,希望能够使用框架,而不是写自己的数据库处理(虽然那是我最初打算做什么,但如果别人已经做得比我好:))

mongoose有一个无模式的types,可以在你的情况下非常有用,但可能不是最好的解决scheme。

ProductSchema = new Schema({any:{}});

如果你改变这个对象的任何东西,你需要在保存之前用obj.markModified('field-name')通知Mongoose它。

我的build议是使用你自己的包装节点mongodb本地 ,我运行生产7〜8个月没有问题。

还有另外一个叫做mongous的库 ,你可以检查一下。