MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да настроя MongoDB Change Stream „OperationType“ в C# драйвера?

Ето примерен код, който използвах за актуализиране на колекцията Watch за извличане на „събития“, различни от актуализации на документи.

IMongoDatabase sandboxDB = mongoClient.GetDatabase("Sandbox");
IMongoCollection<BsonDocument> collection = sandboxDB.GetCollection<BsonDocument>("TestCollection");

//Get the whole document instead of just the changed portion
ChangeStreamOptions options = new ChangeStreamOptions() { FullDocument = ChangeStreamFullDocumentOption.UpdateLookup };

//The operationType can be one of the following: insert, update, replace, delete, invalidate
var pipeline = new EmptyPipelineDefinition<ChangeStreamDocument<BsonDocument>>().Match("{ operationType: { $in: [ 'replace', 'insert', 'update' ] } }");

var changeStream = collection.Watch(pipeline, options).ToEnumerable().GetEnumerator();
changeStream.MoveNext();    //Blocks until a document is replaced, inserted or updated in the TestCollection
ChangeStreamDocument<BsonDocument> next = changeStream.Current;
enumerator.Dispose();

Аргументът EmptyPiplineDefinition...Match() също може да бъде:

"{ $or: [ {operationType: 'replace' }, { operationType: 'insert' }, { operationType: 'update' } ] }"

Ако искате да използвате командата $or или

"{ operationType: /^[^d]/  }"

да хвърли малко регулярен израз там. Това последното казва, че искам всички видове операции, освен ако не започват с буквата 'd'.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Задайте изчакване на Mongo в Spring Boot

  2. разбират MongoDB кеш система

  3. Грешка на Pymongo за ArrayFilters за актуализиране на множество поддокументи

  4. Как да вмъкна HTML в Mongodb?

  5. MongoDB разлика между код за грешка 11000 и 11001