예제 #1
0
        private static PipelineDefinition <ChangeStreamDocument <MongoEventCommit>, ChangeStreamDocument <MongoEventCommit> >?Match(string?streamFilter)
        {
            var result = new EmptyPipelineDefinition <ChangeStreamDocument <MongoEventCommit> >();

            var byStream = FilterExtensions.ByChangeInStream(streamFilter);

            if (byStream != null)
            {
                var filterBuilder = Builders <ChangeStreamDocument <MongoEventCommit> > .Filter;

                var filter = filterBuilder.Or(filterBuilder.Ne(x => x.OperationType, ChangeStreamOperationType.Insert), byStream);

                return(result.Match(filter));
            }

            return(result);
        }