sql >> Database >  >> NoSQL >> MongoDB

Retourneer specifieke array uit objectverzameling

Het fullDocument parameter naar het options (tweede) argument naar de watch methode kan worden gebruikt om een ​​delta te krijgen die de wijzigingen in het document beschrijft voor update bewerkingen:

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

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

});

Dit zal dan een antwoorddocument zoals dit retourneren waar updateDescription bevat de velden die door de update zijn gewijzigd:

{
  _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: []
  }
}

Opmerking:dit werkt alleen voor update bewerkingen en werkt niet voor replace , delete , insert , enz.

Zie ook:




  1. Omgaan met relaties in meteoor-hoekig

  2. Mongo-geolocatie met behulp van $near en 2d-index is niet nauwkeurig

  3. Kafka-gootsteenconnector:geen taken toegewezen, zelfs niet na opnieuw opstarten

  4. 3 manieren om documenten te sorteren in MongoDB