[英]Increment a value inside dictionary on MongoDb C#
我需要增加一个存储在字典中的值,我的 object 的结构(基本上)如下:
public class OrderDetails : EntityBase
{
public int OrderId { get; set; }
public Dictionary<int, int> TotalViewsPerUser { get; set; }
}
由于这个 object 可以在多个请求之间进行竞争,我不能只是将 object 带到服务器,增加值然后再次保存....
所以,我需要做的是增加变量 TotalViewsPerUser 的值,字典键是 UserId。 如果没有密钥,我需要插入密钥并从值 1 开始
我查找了一些使用“Inc”的示例,并找到了以下示例,但是,我无法使其工作,因为 mongo 不会插入密钥
我所做的是:
var update = Builders<OrderDetails>.Update
.Inc($"totalViewsPerUser.{userId}.v", 1);
从$inc
行为,
如果该字段不存在,则 $inc 创建该字段并将该字段设置为指定值。
虽然TotalViewsPerUser
是Dictionary<int, int>
类型,但其值为:
"totalViewsPerUser" : {
1: 1
}
在文档中。 您不应为更新字段指定.v
。
var update = Builders<OrderDetails>.Update
.Inc($"totalViewsPerUser.{userId}", 1);
UpdateResult updateResult = _collection.UpdateMany(
FilterDefinition<OrderDetails>.Empty,
update);
演示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.