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

mongodbサブドキュメントはFirestoreサブコレクションと同等ですか?

    1つのプロジェクトでいくつのアクティビティを実行できますか?制限がない場合は、アクティビティのルートレベルのコレクションを作成することをお勧めします。 MongoDBでは、BSONドキュメントの最大サイズは 16 MB つまり、すべてのプロジェクトとそのアクティビティを1つのドキュメント(組織ドキュメント)に保存できない場合があります。

    組織、プロジェクト、活動の3つのコレクションを作成します。

    1. 各組織は組織にドキュメントを持っている必要があります Firestoreにあるものと同様のコレクション。
    2. 各プロジェクトには、プロジェクトにドキュメントが含まれている必要があります フィールド「organizationID」を含むコレクション。IDを使用して特定の組織のプロジェクトを照会できます。これは、プロジェクトサブコレクションのドキュメントに相当します。すべてのプロジェクトには、独自の一意のIDも必要です。
    3. 各アクティビティには、アクティビティのドキュメントが必要です。 特定のプロジェクトのアクティビティを取得できるように、フィールド「projectID」を含むコレクション。

    これらの追加のorganizationIDを追加しました 、projectID _idがある場合でもフィールド 並べてクエリを簡単に行えるように、FirestoreドキュメントIDを用意したい場合に備えて。

    16 MBについて心配する必要はありません。 ドキュメントのサイズはこのように制限されており、正しいIDがあれば、プロジェクトとアクティビティの両方を簡単に照会できます。

    特定のプロジェクトのアクティビティのクエリ:

    await db.collection("activities").find({projectID: "myProjectID"}).toArray()
    

    その後、プロジェクションや集計などを使用してクエリを作成する方法はあなた次第です。




    1. MongoDB $ dayOfYear

    2. 集計からドキュメント全体を返す

    3. 開発中のMeteorカスタムmongodb

    4. MongoDBを使用してドキュメント内の配列を並べ替えます