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

モンゴの外部キー?

    mongodbでこのようなテーブルを設計するにはどうすればよいですか?

    まず、いくつかの命名規則を明確にします。 MongoDBはcollectionsを使用します tablesの代わりに 。

    外部キーはないと思います!

    次のモデルを使用します:

    student
    { 
      _id: ObjectId(...),
      name: 'Jane',
      courses: [
        { course: 'bio101', mark: 85 },
        { course: 'chem101', mark: 89 }
      ]
    }
    
    course
    {
      _id: 'bio101',
      name: 'Biology 101',
      description: 'Introduction to biology'
    }
    

    明らかに、ジェーンのコースリストはいくつかの特定のコースを指しています。データベースはシステムに制約を適用しません(つまり:外部キー制約 )、したがって、「カスケード削除」または「カスケード更新」はありません。ただし、データベースには正しい情報が含まれています。

    さらに、MongoDBには、これらの参照の作成を標準化するのに役立つDBRef標準があります。実際、そのリンクを見ると、同様の例があります。

    このタスクを解決するにはどうすればよいですか?

    明確にするために、MongoDBはリレーショナルではありません。標準の「通常の形式」はありません。保存するデータと実行するクエリに適したデータベースをモデル化する必要があります。



    1. MongoDB$lteアグリゲーションパイプラインオペレーター

    2. SQLのようなRedisデータベーステーブルを設計しますか?

    3. HBaseコンパクションとは何ですか?

    4. 存在しない場合は挿入する方法、そうでない場合はmongoengineで更新する方法は?