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更新方法不正常

您正在使用旧的MongoDB驱动程序。驱动程序的当前版本是2.0.1,它有新的异步API。因此,您可以等待数据库操作,而无需线程休眠和猜测它将花费多长时间。假设您有一个类,其属性IdObjectId类型,Agentstring类型:

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。