我目前正在从Django切换到Node.js.在我的django应用程序中,我使用MongoDB并仍然希望继续使用它,因为mongo提供了灵活性(无模式)。
我正在经历mongoosejs。在mongoose网站上,他们使用了三个用于猫鼬的形容词flexible
schema-based
和feature-rich
。在对文档进行更广泛的审视后,我毫不怀疑它功能丰富(功能真的令人印象深刻)。但其他两个形容词似乎与Mongodb哲学相矛盾。 Mongodb引用它的动态模式提供了灵活性。而另一方面,Mongoose是基于模式的。那么实际上Mongoose有多灵活?我真的很喜欢mongodb动态模式,并希望拥有它。 简而言之,使用预先填充的集合对Mongoose进行模式的微小改动是多么可行。
另外,为了好奇,我有两个问题(仅与此问题有关)
field
设置为undefined
optional
,如同在mongoengine中一样(Python ORM for mongo)。答案 0 :(得分:1)
即使在非结构化数据中也存在一些结构,即使它是无模式的,也有一些模式:)
尝试找到可以与mongoose一起使用的所有架构。如果您的大多数数据都具有固定架构,则应使用它!
如果您的大部分数据都是无模式的,请不要担心猫鼬!
是的,这是矛盾的,但最后,快速原型设计,性能至关重要! : - )