sql >> Databáze >  >> NoSQL >> MongoDB

Jak nastavit MongoDB Change Stream 'OperationType' v ovladači C#?

Zde je ukázka kódu, který jsem použil k aktualizaci kolekce Watch za účelem získání „událostí“ jiných než jen aktualizací dokumentů.

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();

Argument EmptyPiplineDefinition...Match() může být také:

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

Pokud jste chtěli použít příkaz $or, nebo

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

hodit tam trochu regulárního výrazu. Tento poslední říká:Chci všechny typy operací, pokud nezačínají písmenem 'd'.




  1. mapování v create index v elasticsearch through mongodb river se neprojeví

  2. Připojení MongoDB z mobilní aplikace nebo aplikace založené na prohlížeči

  3. Jak mohu načíst datetiime z mongodb? Porovnáním dat s jDateChosser Java

  4. Proč má middleware nodejs-mongodb jinou syntaxi než mongo shell?