基于模式的猫鼬哲学

时间:2012-12-12 08:45:48

标签: django node.js mongodb mongoose mongoengine

我目前正在从Django切换到Node.js.在我的django应用程序中,我使用MongoDB并仍然希望继续使用它,因为mongo提供了灵活性(无模式)。

我正在经历mongoosejs。在mongoose网站上,他们使用了三个用于猫鼬的形容词flexible schema-basedfeature-rich。在对文档进行更广泛的审视后,我毫不怀疑它功能丰富(功能真的令人印象深刻)。但其他两个形容词似乎与Mongodb哲学相矛盾。 Mongodb引用它的动态模式提供了灵活性。而另一方面,Mongoose是基于模式的。那么实际上Mongoose有多灵活?我真的很喜欢mongodb动态模式,并希望拥有它。 简而言之,使用预先填充的集合对Mongoose进行模式的微小改动是多么可行。

另外,为了好奇,我有两个问题(仅与此问题有关)

  1. 我可以在Mongoose架构中将field设置为undefined
  2. 我可以将任何字段设置为optional,如同在mongoengine中一样(Python ORM for mongo)。

1 个答案:

答案 0 :(得分:1)

即使在非结构化数据中也存在一些结构,即使它是无模式的,也有一些模式:)

尝试找到可以与mongoose一起使用的所有架构。如果您的大多数数据都具有固定架构,则应使用它!

如果您的大部分数据都是无模式的,请不要担心猫鼬!

是的,这是矛盾的,但最后,快速原型设计,性能至关重要! : - )