2

我正在构建一个小型产品系统来尝试让我进入 Node.js、Mongo 等。我被 Mongo 所吸引,因为它可以将不同类型的产品存储在同一个集合中,而不是拥有多个表、eav 或任何其他不太适合的 MySQL 方法。

我正在阅读教程,起初我为 ProductModel 编写了一个 Provider,但后来有人建议我应该使用 Mongoose。

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

是否可以在 Mongoose 中实现这种结构,如何实现?我的理解是,如果我为每种产品类型提供一个模式,我将无法同时查询它们?不同的模式是否意味着不同的集合?- 我想不通。

感谢您提供任何帮助和指导,希望能够使用框架而不是编写数据库来处理自己(尽管我最初打算这样做,但如果其他人已经比我做得更好:))

4

1 回答 1

0

Mongoose 有一个无模式类型,在您的情况下可能非常有用,但可能不是最佳解决方案。

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

如果您更改此对象上的任何内容,您需要在保存之前使用 obj.markModified('field-name') 通知 Mongoose。

我的建议是在node-mongodb-native上使用你自己的包装器,我在生产环境中运行了 7~8 个月没有问题。

还有另一个名为mongoous的库,您可以查看它。

于 2012-05-30T17:52:48.307 回答