C# 一秒看懂 MongDb.Driver的 UpdateReault 参数详解
UpdateReault参数解析
//
// 摘要:
// Gets a value indicating whether the result is acknowledged.
public abstract bool IsAcknowledged { get; } //标识Update操作是否被确认 及update有没有成功
//
// 摘要:
// Gets a value indicating whether the modified count is available.
//
// 言论:
// The available modified count.
public abstract bool IsModifiedCountAvailable { get; }//标识update操作是否进行了计数 如果IsAcknowledged&&IsModifiedCountAvailable--更新成功且可获取更新条数;如果 IsAcknowledged&&!IsModifiedCountAvailable--更新成功 但是无法获取更新条数 【该结果仅有驱动程序返回 只读】
//
// 摘要:
// Gets the matched count. If IsAcknowledged is false, this will throw an exception.
public abstract long MatchedCount { get; }
//
// 摘要:
// Gets the modified count. If IsAcknowledged is false, this will throw an exception.
public abstract long ModifiedCount { get; }
//
// 摘要:
// Gets the upserted id, if one exists. If IsAcknowledged is false, this will throw
// an exception.
public abstract BsonValue UpsertedId { get; }//更新对象不存在 就会新增一条 该属性返回新增数据的_id
Mongdb.Driver对于 UpdateResult(abstract)有两种实现 Acknowledged 和 Unacknowledged
都是WriteConcern的其中一种级别 两者的区别在于 是否需要等待服务器响应 确认操作是否成功
Acknowledged
向数据库发送请求后,会阻塞等待数据库响应,确认操作最终结果
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("test");
var collection = database.GetCollection<BsonDocument>("sample");
// 将 WriteConcern 设置为 Unacknowledged 级别
var writeConcern = new WriteConcern(0);
// 插入数据并使用 Unacknowledged 级别
collection.InsertOne(new BsonDocument("name", "John Doe"));
Unacknowledged
向数据库发送请求后,不阻塞 不等待数据库响应 【当无需对操作结果进行检查 该种方式可以提高性能】
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("test");
var collection = database.GetCollection<BsonDocument>("sample");
// 将 WriteConcern 设置为 Unacknowledged 级别
var writeConcern = new WriteConcern(0);
// 插入数据并使用 Unacknowledged 级别
collection.InsertOne(new BsonDocument("name", "John Doe"), new InsertOneOptions { WriteConcern = writeConcern });// WriteConcern = writeConcern 将WriteConcern 设置为Unacknowledged 级别
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现