繁体   English   中英

mongodb C#驱动程序中缺少FindAndModify

[英]FindAndModify missing in mongodb C# driver

我正在使用Mongodb Shell 3.2.4和C#驱动程序2.2.3。 我什至安装了旧版驱动程序2.2.3,但仍然面临以下问题。

我想为我的一个字段(即eventID)使用AutoIncremented值,因此我尝试使用FindAndModify,但似乎找不到它。

_client = new MongoClient();
_database = _client.GetDatabase("users");
var counters = _database.GetCollection<BsonDocument>("counters");
var counterQuery = Query.EQ("_id", "eventId");

var findAndModifyResult = counters.FindAndModify(
      new FindAndModifyArgs()
      {
          Query = counterQuery,
          Update = Update.Set("web", "testweb")
     });

但是我得到以下错误:

Error   2   'MongoDB.Driver.IMongoCollection<MongoDB.Bson.BsonDocument>' does not contain a definition for 'FindAndModify' and no extension method 'FindAndModify' accepting a first argument of type 'MongoDB.Driver.IMongoCollection<MongoDB.Bson.BsonDocument>' could be found (are you missing a using directive or an assembly reference?)

附加截图
在此处输入图片说明

在新的2.0驱动程序中,现在称为FindOneAndUpdate。

您在问题中混合使用了旧的旧版驱动程序和新格式-Query.EQ也来自旧版驱动程序-因此,我建议删除该旧版驱动程序作为第一步。

然后,您应该能够通过使用构建器来获得所需的东西,例如:

var _client = new MongoClient();
var _database = _client.GetDatabase("users");
var counters = _database.GetCollection<BsonDocument>("counters");
var counterQuery = Builders<BsonDocument>.Filter.Eq("_id", "eventId");

var findAndModifyResult = counters.FindOneAndUpdate(counterQuery,
              Builders<BsonDocument>.Update.Set("web", "testweb"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM