Delen via


$changeStream (aggregatie)

TOEPASBAAR OP: MongoDB vCore

De $changeStream aggregatiefase opent een wijzigingsstroomcursor waarmee gegevenswijzigingen in realtime worden bijgehouden. In deze fase kunnen toepassingen reageren op het invoegen, bijwerken, verwijderen en andere bewerkingen wanneer ze zich in de verzameling voordoen.

Syntaxis

De syntaxis voor de $changeStream fase is als volgt:

{
  $changeStream: {
    allChangesForCluster: <boolean>,
    fullDocument: <string>,
    fullDocumentBeforeChange: <string>,
    resumeAfter: <ResumeToken>,
    startAfter: <ResumeToken>,
    startAtOperationTime: <Timestamp>,
    showExpandedEvents: <boolean>
  }
}

Parameterwaarden

Beschrijving
allChangesForCluster Facultatief. Booleaans. Indien waar, retourneert u wijzigingen voor het hele cluster. De standaardwaarde is vals.
fullDocument Facultatief. Snaar. Bepaalt wat er moet worden geretourneerd voor updatebewerkingen. Opties: 'default', 'updateLookup', 'whenAvailable', 'required'.
fullDocumentBeforeChange Facultatief. Snaar. Retourneert de voorafbeelding van het document. Opties: "uit", "whenAvailable", "required".
resumeAfter Facultatief. Het token hervatten om de wijzigingsstroom te hervatten na een specifieke gebeurtenis.
startAfter Facultatief. Hervat het token om de wijzigingsstroom te starten na een specifieke gebeurtenis.
startAtOperationTime Facultatief. tijdstempel voor het starten van een wijzigingsstroom vanaf een specifieke tijd.
showExpandedEvents Facultatief. Booleaans. Neem nog een wijzigingsstroom gebeurtenissen op. De standaardwaarde is vals.

Voorbeeld

Laten we het gebruik begrijpen met de stores gegevensset voor het bewaken van realtime wijzigingen.

Voorbeeld 1: Alle wijzigingen in de winkelverzameling controleren

In het voorbeeld ziet u hoe u een wijzigingsstroom instelt om alle wijzigingen in de winkelverzameling te controleren.

db.stores.aggregate([
  {
    $changeStream: {
      fullDocument: "updateLookup"
    }
  }
])

Wanneer een archiefdocument wordt bijgewerkt, retourneert de wijzigingsstroom de wijzigings gebeurtenis met het volledige document.

{
  "_id": { "_data": "AeARBpQ/AAAA" },
  "operationType": "update",
  "fullDocument": {
    "_id": "905d1939-e03a-413e-a9c4-221f74055aac",
    "name": "Trey Research | Home Office Depot - Lake Freeda",
    "sales": {
      "revenue": 42500
    },
    "company": "Trey Research",
    "lastUpdated": ISODate("2024-06-16T10:30:00.000Z")
  },
  "ns": {
    "db": "StoreData",
    "coll": "stores"
  },
  "documentKey": {
    "_id": "905d1939-e03a-413e-a9c4-221f74055aac"
  }
}