我的代码使用C#Mongo驱动程序版本1 for (int i = 0; i < arr.length-1; i++) {
int leastGreater = ? //Don't know what to initialize with
for (int j = i + 1; j < arr.length; j++) {
if ((arr[j] > arr[i])) {
if(arr[j]<leastGreater){
leastGreater = arr[j];
}
}
}
Repository
我将代码更改为C#驱动程序版本2
/// <summary>
/// Generic update method to update record on the basis of id
/// </summary>
/// <param name="queryExpression"></param>
/// <param name="id"></param>
/// <param name="entity"></param>
public void Update(Expression<Func<T, string>> queryExpression, string id, T entity)
{
var query = Query<T>.EQ(queryExpression, id);
_collection.Update(query, Update<T>.Replace(entity));
}
我使用( /// <summary>
/// Generic update method to update record on the basis of id
/// </summary>
/// <param name="queryExpression"></param>
/// <param name="id"></param>
/// <param name="entity"></param>
public void Update(Expression<Func<T, string>> queryExpression, string id, T entity)
{
// var query = Query<T>.EQ(queryExpression, id);
//_collection.Update(query, Update<T>.Replace(entity));
var query = Builders<T>.Filter.Eq(queryExpression, id);
var update = Builders<T>.Update.Set(queryExpression, id);
_collection.UpdateOneAsync(query, update); ;
}
)打电话:
controller
我没有得到文档更新。你知道我的迁移代码有什么问题。
由于
答案 0 :(得分:1)
您调用的异步方法没有await
_collection.UpdateOneAsync(query, update);
,这不是问题的根本原因,但在这种情况下您没有正确的异常处理。
await
或使用相应的同步版本UpdateOne
您可能还希望使用ReplaceOne作为初始版本,V1驱动程序也会替换整个文档。以下内容应符合您的需求(尽管未经过测试)
...
var query = Builders<T>.Filter.Eq(queryExpression, id);
_collection.ReplaceOne(query, entity);
...