我偶然发现了MongoDB 3.6中的$expr功能。如果更新文档的属性A大于属性B,我想将其与更改流一起使用,以仅接收更新。
db.items.find({ $expr: { $gt: [ "$A" , "$B" ] } });
该功能是否在C#驱动程序中实现?我使用Builders构建管道过滤器,但没有为$ expr运算符找到合适的方法。
答案 0 :(得分:1)
我最近也遇到了这个问题,我最终选择了Follow选项,只是将查询作为匹配管道的字符串写出
var cursor = _collection.Watch(PipelineDefinition<YourType, YourType>.Create(
new[]
{
PipelineStageDefinitionBuilder.Match<BsonDocument>(@"{ $expr: { $eq: [ ""$A"" , ""$B"" ] } }")
}));