MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Restituisce un array specifico dalla raccolta di oggetti

Il fullDocument parametro alle opzioni (secondo) argomento al watch può essere utilizzato per ottenere un delta che descrive le modifiche al documento per update operazioni:

const thoughtChangeStream = connection.collection("phonenumbers").watch([], {
  fullDocument: 'updateLookup'
});

thoughtChangeStream.on("change", (change) => {
   
  io.of("/api/socket").emit("newThought", change);

});

Questo restituirà quindi un documento di risposta come questo dove updateDescription contiene i campi che sono stati modificati dall'aggiornamento:

{
  _id: {
    _data: '8260931772000000012B022C0100296E5A1004ABFC09CB5798444C8126B1DBABB9859946645F696400646082EA7F05B619F0D586DA440004'
  },
  operationType: 'update',
  clusterTime: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1620252530 },
  ns: { db: 'yourDatabase', coll: 'yourCollection' },
  documentKey: { _id: 6082ea7f05b619f0d586da44 },
  updateDescription: {
    updatedFields: { updatedField: 'newValue' },
    removedFields: []
  }
}

Nota:funzionerà solo per update operazioni e non funzionerà per replace , delete , insert , ecc.

Vedi anche: