MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để đặt MongoDB Change Stream 'OperationType' trong trình điều khiển C #?

Đây là một mẫu mã tôi đã sử dụng để cập nhật bộ sưu tập Watch để truy xuất "sự kiện" khác ngoài cập nhật tài liệu.

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

Đối số EmptyPiplineDefinition ... Match () cũng có thể là:

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

Nếu bạn muốn sử dụng lệnh $ hoặc hoặc

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

để ném một chút regex vào đó. Điều cuối cùng này đang nói, tôi muốn tất cả các Loại hoạt động trừ khi chúng bắt đầu bằng chữ 'd'.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để sắp xếp và giới hạn kết quả trong mongodb?

  2. loại trừ các trường trong tổng hợp $ lookup

  3. Khôi phục Cơ sở dữ liệu MongoDB bằng mongorestore

  4. Chỉ số không gian địa lý cho cấu trúc bên trong

  5. _.merge sao chép tài liệu con thay vì cập nhật