私はEAV(entity-attribute-value)webアプリケーションを開発してきました。
私がmongoを使用したい主な理由は、スキーマがないことです。つまり、不要なフィールドがなくても、「color」属性を持つ車を簡単に見つけることができます。
実装するドキュメント構造の短い例を次に示します。
コンピュータカテゴリのウェア:
{
name: "Core i7",
category: 1,
properties:{
price:300,
vendor: "Intel",
...
}
}
一方、独自の属性セットを持つ自動車カテゴリのウェアがあります。
{
name: "Audi Q7",
category: 2,
properties:{
price:30000,
color:"red",
hp:200
...
}
}
しかし、100個のカテゴリがある場合、データベースには100個の異なるドキュメントが格納されます(構造によって)。MongoDBのドキュメントによると、そのドキュメントはスキーマレスである可能性がありますが、ドキュメントの構造を同じにすることをお勧めします。
私の質問は:多くの異なる構造文書を持つことは非常に悪い習慣ですか?