Mongodb への埋め込みを理解しようとしましたが、十分なドキュメントが見つかりませんでした。書き込みはドキュメント間でアトミックではなく、2 つのルックアップがあるため、リンクはお勧めしません。誰かがこれを解決する方法を知っていますか、それともneo4jのようなグラフDBに行くように勧めてくれませんか?
多対多の関係を必要とするアプリケーションを構築しようとしています。説明するために、ライブラリの例を取り上げます。ユーザーの友人が読んでいる本や、同じような考えを持つ隣人が読んでいる本に基づいて、ユーザーに本を提案することができます。
ユーザーとブックがあります。ユーザーは本を借りており、他のユーザーである友達がいます
- ユーザーが与えられた場合、彼が読んでいるすべての本と、その本のための共通の友達の数が必要です
- 与えられた本には、それを読んでいるすべての人が必要です。ユーザー A が与えられた場合、これは、本を読んでいる人々とユーザー A の友人の共通部分を返します。これは相互の友情です。
ユーザー = [
{ name: 'xyz', 'id':'000000', friend_ids:['949583','958694']} { name: 'abc', 'id':'000001', friend_ids:['949582','111111']} ]
本 = [
{'book':'da vinci code', 'author': 'dan brown', 'readers'=['949583', '000000']} {'book':'iCon', 'author': 'Young', 'readers'=['000000', '000001']} ]
上記のように、mongo DB を使用する場合は、双方向のルックアップを行う可能性があるため、一般に 2 つのドキュメントが必要です。ドキュメントを別のドキュメントに複製 (埋め込み) すると、多くの重複が発生する可能性があります (これらのスキーマには、示されているよりもはるかに多くの情報が格納される可能性があります)。
データを正しくモデリングしていますか? これはmongodbで効果的に行うことができますか、それともグラフDBを見るべきですか。