【发布时间】:2019-12-05 09:21:42
【问题描述】:
我尝试使用 C# mongodb 驱动程序构建更新请求。
只有当他不为空时,我才想更新一个字段。以下是以下代码:
public void Replace(Core.Entity.Project project)
{
var filter = Builders<Entity.Project>.Filter.Eq(x => x.ProjectNumber, project.ProjectNumber);
var update = BuildUpdateRequest(project);
_mongoCollection.UpdateOne(filter, update);
}
private UpdateDefinition<Entity.Project> BuildUpdateRequest(Core.Entity.Project project)
{
var builder = Builders<Entity.Project>.Update;
var update = builder.Set(x => x.LastUpdateDate, DateTime.UtcNow);
if (!string.IsNullOrEmpty(project.UserId))
{
update.Set(x => x.UserId, project.UserId);
}
}
不幸的是,当我运行单元/集成测试时,数据没有更新。 你有更好的方法来使用这些对象吗?
【问题讨论】:
-
也许只是将这些条件添加到过滤器中?那么只有当文档对更新有效时才会匹配。
标签: c# .net mongodb asp.net-core mongodb-query