这个方法最牛逼的地反就在于既可以返回更新前的值,也可以返回更新后的值,具体返回哪一个,取决于你为FindAndModifyArgs的VersionReturned属性赋什么值。
来看一下方法的签名:
public virtual FindAndModifyResult FindAndModify(FindAndModifyArgs args);
和使用FindXXX方法一样,都要先构造一个XXXArgs参数。首先,构造一个FindAndModifyArgs对象,如下:
var args = new FindAndModifyArgs { Query=Query.GTE("x",2),//x字段大于2的值 Update=Update.Inc("x",2),//将找到的值加2 VersionReturned=FindAndModifyDocumentVersion.Original//返回更新前的值 };
var args = new FindAndModifyArgs { Query=Query.GTE("x",2),//x字段大于2的值 Update=Update.Inc("x",2),//将找到的值加2 VersionReturned=FindAndModifyDocumentVersion.Original//返回更新前的值 }; //更新文档,将x=2的文档修改为x=4。 var result=collection.FindAndModify(args);