我正在构建一个小型产品系统,试图让我进入Node.js,Mongo等。 我被Mongo吸引到了将不同类型的产品存储在同一个集合中的可能性,而不是有多个表,eav或任何其他不太合适的MySQL方法。
我正在阅读教程,最初没有为ProductModel编写提供程序,但后来有人建议我应该使用Mongoose。
然而,Mongoose的问题似乎是我需要为每个模型设置一个模式。我的第一个想法是产品应该具有title
和type
属性。然后type
将决定整体产品结构。例如,dvd
产品可能有导演,而t-shirt
产品没有导演但会有不同的尺寸。
是否有可能在Mongoose中实现这种结构,以及如何实现?我的理解是,如果我为每个产品类型提供架构,我将无法同时查询它们?不同的模式是否意味着不同的集合? - 我无法理解这一点。
感谢任何帮助和指导,希望能够使用框架而不是自己编写数据库处理(尽管我最初计划做什么,但如果其他人已经比我做得更好:))
答案 0 :(得分:0)
Mongoose有一种无模式类型,在你的情况下非常有用,但可能不是最好的解决方案。
ProductSchema =新架构({any:{}});
如果您更改此对象的任何内容,则需要在保存之前使用obj.markModified('field-name')通知Mongoose。
我的建议是在node-mongodb-native上使用你自己的包装器,我正在生产7到8个月没有问题。
还有另一个名为mongous的lib,您可以查看它。