5

ですから、試してみて試行錯誤するのが最善かもしれませんが、私は非常に単純な構造をmysqlからmongodbに移行するための最良の方法を見つけようとしています。mysqlに「articles」というメインテーブルがあり、他に2つのテーブルがあります。1つは「categories」、もう1つは「category_linkage」です。カテゴリにはすべてIDと名前があります。すべての記事にはIDとその他のデータがあります。リンケージテーブルは記事をカテゴリに関連付けるため、各記事に無制限のカテゴリを関連付けることができます。

MongoDBのアプローチから、同じコレクションにその記事に属する記事データとカテゴリIDを格納するだけで、2つのデータコレクション(1つは記事用、もう1つはカテゴリ用)を持つのは理にかなっていますか?私の考えでは、記事からカテゴリを追加/削除するには、その特定の記事ドキュメントを更新($ pull / $ push)するだけですよね?

4

2 に答える 2

4

Macコンピュータにアクセスできる場合は、MongoHubGUIを試してみてください。「MySQLからインポート」機能があります。

于 2012-05-03T16:10:51.927 に答える
4

私の意見では、良いモデルは次のようになります。

{"article_name": "name",
 "category": ["category1_name", "category2_name", ...],
 "other_data": "other data value"
}

したがって、カテゴリ名を記事ドキュメントに直接埋め込むには。記事のカテゴリを更新するのは簡単ですが、カテゴリを完全に削除するには、そのカテゴリに属する​​すべての記事を変更する必要があります。カテゴリを頻繁に削除する場合は、パフォーマンスの観点から、カテゴリを分離しておくことをお勧めします。

このアプローチにより、カテゴリ名でクエリを実行することも簡単になります(別のクエリで名前をIDにマップする必要はありません)。

したがって、データをモデル化する「正しい」方法は、mongodbやその他のnosqlデータベースの場合と同様に、想定されるユースケースによって異なります。

于 2012-05-03T19:01:16.120 に答える