sql >> Databasteknik >  >> NoSQL >> MongoDB

Är mongodb-underdokument likvärdiga med Firestore-undersamlingar?

Hur många aktiviteter kan ett enskilt projekt ha? Om det inte finns någon gräns är det bättre att skapa en samling på rotnivå för aktiviteter. I MongoDB är den maximala BSON-dokumentstorleken 16 MB . Det betyder att du kanske inte kan lagra alla projekt och deras aktiviteter i ett enda dokument (organisationsdokument).

Jag skulle skapa 3 samlingar nämligen - organisationer, projekt och aktiviteter.

  1. Varje organisation bör ha ett dokument i organisationer samling liknande den du har i Firestore.
  2. Varje projekt bör ha ett dokument i projekt samling som innehåller ett fält "organisations-ID" så att du kan söka efter projekt för en specifik organisation med deras ID. Detta motsvarar ett dokument i ditt projekts undersamling. Varje projekt måste också ha sitt eget unika ID.
  3. Varje aktivitet bör ha ett dokument i aktiviteter samling som innehåller ett fält "projectID" så att aktiviteter för ett specifikt projekt kan hämtas.

Jag har lagt till dessa ytterligare organizationID , projectID fält även om du har _id bara om du skulle vilja ha Firestore-dokument-ID där för enklare sida vid sida-frågor.

Du behöver inte oroa dig för 16 MB begränsa dokumentstorleken på detta sätt och det blir lättare att fråga både projekt och aktiviteter så länge du har rätt ID.

Fråga efter aktiviteter för ett visst projekt:

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

Därefter är det upp till dig hur du vill skriva frågor med projektioner, aggregering, etc.




  1. JHipster Redis Integrationselement obundet fel

  2. Infoga element i kapslade arrayer i MongoDB

  3. Redis Anslutning via uttag på Node.js

  4. MongoDB - hämta dokument med maxattribut per grupp i en samling