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

入力されたフィールドに対するMongoDBクエリ

    答えはスキーマを変更することです。

    リレーショナルデータベースの使用履歴からドキュメントデータベースの開発に取り掛かるときに、多くの開発者が直面している罠に陥っています。MongoDBはリレーショナルデータベースではないため、そのように扱うべきではありません。

    外部キーと完全に正規化されたデータについて考えるのをやめ、代わりに、各ドキュメントを可能な限り自己完結型に保ち、関連する関連データをドキュメントに最適に埋め込む方法を考える必要があります。

    これは、関連付けも維持できないという意味ではありません。これは、必要な詳細のみを埋め込み、必要に応じて完全なレコードを照会する、このような構造を意味する場合があります。

    var activitySchema = new mongoose.Schema({
      event: {
        _id: { type: ObjectId, ref: "Event" },
        name: String,
        private: String
      },
    
      // ... other fields
    });
    

    埋め込み戦略を再考すると、非常に クエリを簡素化し、クエリ数を最小限に抑えます。 populate カウントが急速に増加し、データセットが大きくなるにつれて、これが問題になる可能性が非常に高くなります。



    1. CopyTableを使用したオンラインApacheHBaseバックアップ

    2. MongoDBインスタンスまたはレプリカセットのクローン作成

    3. すべてのセットをredisで取得するにはどうすればよいですか?

    4. RailsにMongoidを搭載したMongoDB-地理空間インデックス