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

mongodbとnodejsでのブログと評価のモデリング

    MongoDB(およびその他の非リレーショナルデータストア)の良い習慣は、アプリケーションで簡単に使用/クエリできるようにデータをモデル化することです。あなたの場合、構造を少し非正規化し、評価をブログコレクションに正しく保存することを検討するかもしれません。そのため、ブログは次のようになります。

    {
      title: "My New Post",
      body: "Here's my new post. It is great. ...",
      likes: 20,
      dislikes: 5,
      ...
      rates: [
        { client_id: (id of client), rate: 5 },
        { client_id: (id of another client), rate: 3 },
        { client_id: (id of a third client), rate: 10 }
      ]
    }
    

    rates評価するという考え方 配列には、ブログエントリを表示するために必要なすべてのデータが、評価とともに1つのドキュメントに含まれています。別の方法でレートを照会する必要があり(たとえば、ユーザーXによるすべての評価を検索する)、サイトの読み取りが多い場合は、検討することができます。 Ratesにデータを保存する あなたが今しているようにコレクション。確かに、データは2つの場所にあり、更新するのは難しいですが、アプリとアプリがデータにアクセスする方法を分析した後は、全体的なメリットになる可能性があります。

    ドキュメントの構造の奥深くにインデックスを適用できることに注意してください。たとえば、News.rates.client_idにインデックスを付けることができます。 、そしてNewsでドキュメントをすばやく見つけることができます 特定のユーザーが評価したコレクション。




    1. MongoDBの.updateOneがNode.jsで機能しない

    2. DarkShieldを使用したMongoDB、Cassandra、ElasticsearchでのPIIのマスキング:…

    3. 接続が拒否されました-Mongodbのrakedb:seedでconnect(2)

    4. 距離を取得する方法-MongoDBテンプレートNear関数