mongodb C# 驱动程序中缺少 FindAndModify
FindAndModify missing in mongodb C# driver
我正在使用 Mongodb shell 3.2.4 和 C# 驱动程序 2.2.3。我什至安装了旧版驱动程序 2.2.3,但仍然面临以下问题。
我想为我的字段之一使用 AutoIncremented 值,即 eventID,所以我正在尝试使用 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 也来自旧版驱动程序 - 所以我建议首先删除旧版驱动程序。
那么你应该可以通过使用Builders得到你需要的东西,例如:
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"));
我正在使用 Mongodb shell 3.2.4 和 C# 驱动程序 2.2.3。我什至安装了旧版驱动程序 2.2.3,但仍然面临以下问题。
我想为我的字段之一使用 AutoIncremented 值,即 eventID,所以我正在尝试使用 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 也来自旧版驱动程序 - 所以我建议首先删除旧版驱动程序。
那么你应该可以通过使用Builders得到你需要的东西,例如:
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"));