我有一组文件,其中每个文件都包含一个计数器,如下所示:
{_id: 'a', CurrentCount: 0 }
我想:
目前,我执行FindOneAndUpdate,其中包含有关CurrentCount的id和期望值的过滤器,以及一个使CurrentCount递增的Update语句。如果文档存在但CurrentCount不等于期望值,则_id上的唯一索引将导致upsert抛出异常,我将其捕获并归属于不正确的计数器。
我正在寻找一种方法来做到这一点是对数据库的单一查询,而不必依赖异常。
有没有办法构建一个只基于Id进行upsert的查询,只有当CurrentCount等于期望值时才更新,并返回文档的(可能)更改版本?
我正在使用带有C#驱动程序的Mongo 3.x