Collection.FindAndModify 方法使用,
以下方法2个参数的定义:
DirtyStatus:数据的状态,例如定义 1、2、3 代表 增、改、删除三类数据, 0代表已经处理完成的数据
version:代码数据的版本信息,在增删改的操作时 可以使用自增+1的做法,标识数据已经处理的记录。而此次置为0 是结合DirtyStatus来标识数据的状态的。
应用的环境 :数据同步。一旦有数据发生改变,就需要同步,这个时候就通过FindAndModify方法结合这2个参数很容易就实现。
public bool SetSyncStatus(long Id, int version)
{
var result = _content.Collection.FindAndModify(new FindAndModifyArgs()
{
Query = Query.And(Query.EQ("_id", Id), Query.EQ("Version", version)),
Update = Update.Set("Version", 0)
.Set("DirtyStatus", 0),
VersionReturned = FindAndModifyDocumentVersion.Modified,
Upsert = false,
});
if (result.ModifiedDocument != null)
{
return true;
}
else
return false;
}
参考官方文档
http://docs.mongodb.org/manual/reference/method/db.collection.findAndModify/