C# 更新Mongodb子文档的实现方法

参考资源:

  1:mongodb3.2系统性学习——3、update()操作

  2: C# 操作mongodb子文档

 

代码如下:

复制代码
 var mongoString = "mongodb://xxxxxxxxxxx:27017";
             var host = new TMongodbHostModel
             {
                 CollectionName = "ft_test",
                 ConnectionString = mongoString,
                 DatabaseName = "system_db"
             };
 
             var person = new Person
             {
                 Id = ObjectId.GenerateNewId(),
                 Name = "jamesbing",
                 Address = new List<AddressItem>
                 {
                     new AddressItem {Add = "英国", Id = ObjectId.GenerateNewId(), Age = 12},
                     new AddressItem {Add = "美国", Id = ObjectId.GenerateNewId(), Age = 19}
                 }
             };
             var collection = TMongodbHelper.GetMongoCollection<Person>(host.ConnectionString, host.DatabaseName, host.CollectionName);
 
             //Update ChildDocument
             var address = "Address.$.{0}";
             var result = collection.FindAndModify(
                 Query.And(new List<IMongoQuery>
                 {
                    Query.EQ("_id", new ObjectId("577b344a87aebb23c0fc767a")),
                     Query.EQ("Address._id", new ObjectId("577b344a87aebb23c0fc767b")),
                 }), MongoDB.Driver.Builders.Update.Set(string.Format(address, "Age"), BsonValue.Create(33)));
复制代码

 

posted @   王亚奇  阅读(498)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示