sql >> データベース >  >> NoSQL >> MongoDB

このデータをmongoDBに保存するのに最適なデータ構造は何ですか?

    あなたの構造は正しく見えます。データフィールドにはnews_idのみを保存します。完全なドキュメントを保存すると、ユーザーが新しいニュースをお気に入りに追加するたびに、MongoDBによる多くの移動と書き込みが発生するため、これはよりスマートな実装です。

    おそらくすでにご存知の理由は、更新のたびに新しいドキュメントが作成されるためです。参照: http://docs.mongodb.org/ manual / reference / method / db.collection.save /#upsert

    また、ビジネスルールとして、ユーザーがお気に入りとして設定できるニュースアイテムの数を制限する必要があると思います。このリストを無期限に拡張できるようにすることは、組み込み設計にとっては良い考えではありません。

    無制限の数のお気に入りが必要な場合は、そのための個別のコレクションを作成してから、ユーザーがすべてのお気に入りを取得するには、集計クエリで$ match(ユーザーのID)および$ sort(ニュースアイテムの)演算子を使用します。ユーザーのお気に入りのニュースアイテムの並べ替えられたリストを取得します。




    1. mongodbのコレクションから最初の20個のドキュメントを検索する

    2. MongoDBでのスキーマの計画と管理(スキーマがない場合でも)

    3. LinuxにApacheCouchDB2.3.0をインストールする方法

    4. redisのTransparentHugePagesをオフにするタイミング