title: How to watch for changes to specific fields in MongoDB change stream
body: <p>I am using the node driver for mongodb to initiate a change stream on a document that has lots of fields that update continuously (via some logic on the insert/update end that calls <strong>$set</strong> with only the fields that changed), but I would like to watch only for changes to a specific field. My current attempt at this is below but I just get every update even if the field isn't part of the update.</p>
  
  <p>I think the "updateDescription.updatedFields" is what I am after but the code I have so far just gives me all the updates.</p>
  
  <p>What would the proper $match filter look like to achieve something like this? I thought maybe checking if it's $gte:1 might be a hack to get it to work but I still just get every update. I've tried $inc to see if the field name is in "updatedFields" as well but that didn't seem to work either. </p>
  
  <pre><code>const MongoClient = require('mongodb').MongoClient;
  
  const uri = 'mongodb://localhost:27017/?replicaSet=rs0';
  MongoClient.connect(uri, function(err, client) {
  
      const db = client.db('mydb');
      // Connect using MongoClient
      var filter = {
          $match: {
              "updateDescription.updatedFields.SomeFieldA": { $gte : 1 },
              operationType: 'update'
          }
      };
  
      var options = { fullDocument: 'updateLookup' };
      db.collection('somecollection').watch(filter, options).on('change', data =&gt; {
          console.log(new Date(), data);
      });
  });
  </code></pre>