MongoDb更新方法不正常
本文关键字:不正常 新方法 更新 MongoDb | 更新日期: 2023-09-27 18:18:03
我在我的项目中使用mongoDB,我使用Collection。在我的代码中更新方法,但它不能正常工作,有时会失败,代码粘贴在下面:
collections.Update(Query.EQ("_id", ObjectId.Parse(databaseid)),Update.Set("agent",ip))
如果我试着在这行后面添加代码,也许它会在大多数情况下工作:
Thread.Sleep(2000);
那么问题在哪里?
您正在使用旧的MongoDB驱动程序。驱动程序的当前版本是2.0.1,它有新的异步API。因此,您可以等待数据库操作,而无需线程休眠和猜测它将花费多长时间。假设您有一个类,其属性Id
为ObjectId
类型,Agent
为string
类型:
private async Task DoSomething(ObjectId id, string ip)
{
MongoClient client = new MongoClient(connectionString);
var db = client.GetDatabase("databaseName");
var collection = db.GetCollection<YourClass>("collectionName");
var update = Builders<YourClass>.Update.Set(x => x.Agent, ip);
var result = await collection.UpdateOneAsync(x => x.Id == id, update);
// you can check update result here
}
因此,只需更新您的驱动程序并使用新的异步API。