我在测试我的应用程序时遇到了奇怪的行为。我有一个更新多个文档的请求,并将其中一个字段增加 1(并将其他字段减少 -1,但不要认为这是重点)。
Query = { "_id" : { "$in" : [ObjectId("4fbf8481a975b5237c56f221"),
ObjectId("4fbf8481a975b5237c56f222"),
ObjectId("4fbf8481a975b5237c56f223")] } };
Update = { "$inc" : { "PartlyCompleted" : -1, "Completed" : 1 } }
第一个文档更新正常,但其他两个不受影响。
可能是什么原因。请给我建议在哪里看。
一些额外的信息。我正在使用 C# 官方驱动程序。这是一些代码:
_personsId = new BsonArray();
_personsId.AddRange(personsId.Where(x => DataService.IsIdValid(x)).
Select(x => new ObjectId(x)).ToArray());
var query = Query.In("_id", _personsId);
var update = Update.Combine(
Update.Inc("Completed", 1 ),
Update.Inc("PartlyCompleted", -1));
DataService.PersonSet.Collection.Update(query, update);
我还检查了下面查询返回的文档数,它是 3:
var count = DataService.PersonSet.Collection.Count(query);