如果模式太dynamic,我应该使用mongoose吗?

到目前为止我所了解的是,mongoose需要我们来定义一个模式。 但是,如果我的模式在每个用户的基础上不断变化呢? 例如,假设有成千上万的手机用户。 每个用户都有不同types的优惠订阅,什么不是。 新的优惠不断涌现,他甚至可以select优惠组合,即时创build新优惠。 因此,这些优惠成为持有有关该优惠的各种其他细节的子文件的钥匙。 这样的模式不能被预定义。 那我可以用mongoose吗? 或者坚持使用mongojstypes的薄皮包装,忘记了mongoose的ODMfunction?

您可以创build一个混合types的架构,对您可以存储的数据的types没有限制。 然而,这是一个权衡。 看看官方文档的信息和实施细节。

从mongoose文档:

注意:无论架构选项如何,您的架构中不存在的实例上的任何键/ val集都会被忽略。

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

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

您也可以将ad-hoc值置于混合子文档types下。