如果架构过于动态,我应该使用mongoose吗?

时间:2014-03-12 06:29:29

标签: node.js mongodb mongoose mongojs

到目前为止我所理解的是猫鼬需要我们来定义一个模式。但是如果我的架构在每个用户的基础上不断变化怎么办呢。例如,假设有成千上万的手机用户。每个用户都有不同类型的优惠订阅和什么不是。新的优惠不断涌现,他甚至可以选择优惠组合,即时创造新的优惠。因此,这些优惠成为持有关于该优惠的各种其他细节的子文档的关键。无法预定义此类架构。那我要用猫鼬吗?还是坚持使用mongojs型薄皮包装而忘记了mongoose的ODM功能?

2 个答案:

答案 0 :(得分:3)

您可以创建一个混合类型架构,其中对您可以存储的数据类型没有限制。但是,它需要权衡利弊。有关信息和实现的详细信息,请查看official documentation

答案 1 :(得分:0)

来自Mongoose的文档:

注意:无论架构选项如何,都会忽略模式中不存在的实例上设置的任何键/值。

您可以在创建模型实例时设置值:

var task = new Task({'otherKey', 'some value'});

您也可以将ad-hoc值放在混合子文档类型下。