到目前为止我所理解的是猫鼬需要我们来定义一个模式。但是如果我的架构在每个用户的基础上不断变化怎么办呢。例如,假设有成千上万的手机用户。每个用户都有不同类型的优惠订阅和什么不是。新的优惠不断涌现,他甚至可以选择优惠组合,即时创造新的优惠。因此,这些优惠成为持有关于该优惠的各种其他细节的子文档的关键。无法预定义此类架构。那我要用猫鼬吗?还是坚持使用mongojs型薄皮包装而忘记了mongoose的ODM功能?
答案 0 :(得分:3)
您可以创建一个混合类型架构,其中对您可以存储的数据类型没有限制。但是,它需要权衡利弊。有关信息和实现的详细信息,请查看official documentation。
答案 1 :(得分:0)
来自Mongoose的文档:
注意:无论架构选项如何,都会忽略模式中不存在的实例上设置的任何键/值。
您可以在创建模型实例时设置值:
var task = new Task({'otherKey', 'some value'});
您也可以将ad-hoc值放在混合子文档类型下。