C# 操作mongodb子文档
1 var mongoString = "mongodb://jamesbing:123456@localhost:27017"; 2 var host = new TMongodbHostModel 3 { 4 CollectionName = "ft_test", 5 ConnectionString = mongoString, 6 DatabaseName = "system_db" 7 }; 8 9 var person = new Person 10 { 11 Id = ObjectId.GenerateNewId(), 12 Name = "jamesbing", 13 Address = new List<AddressItem> 14 { 15 new AddressItem {Add = "英国", Id = ObjectId.GenerateNewId(), Age = 12}, 16 new AddressItem {Add = "美国", Id = ObjectId.GenerateNewId(), Age = 19} 17 } 18 }; 19 // var addresult = TMongodbHelper.Add(host, person); 20 var collection = TMongodbHelper.GetMongoCollection<Person>(host.ConnectionString, host.DatabaseName, host.CollectionName); 21 22 //Update ChildDocument 23 var address = "Address.$"; 24 var result = collection.Update( 25 Query.And(new List<IMongoQuery> 26 { 27 Query.EQ("_id", new ObjectId("577b344a87aebb23c0fc767a")), 28 Query.EQ("Address._id", new ObjectId("577b344a87aebb23c0fc767b")), 29 }), Update.Set(address + ".Age", 33)); 30 31 32 //Add ChildDocument 33 //单个 34 var result2 = collection.Update(Query.EQ("_id", new ObjectId("577b2d6787aebb198839d415") 35 ), Update.Push("Address", new AddressItem { Add = "山西省运城市", Id = ObjectId.GenerateNewId() }.ToBsonDocument())); 36 37 //多个 38 var result3 = collection.Update(Query.EQ("_id", new ObjectId("577b262587aebb41fca9a3af") 39 ), Update.PushEach("Address", new[] { new AddressItem { Add = "山西省运城市4", Id = ObjectId.GenerateNewId(), Age = 10 }.ToBsonDocument(), new AddressItem { Add = "山西省运城市5", Id = ObjectId.GenerateNewId(), Age = 9 }.ToBsonDocument() })); 40 41 //Remove ChildDocument 42 var result4 = collection.Update(Query.EQ("_id", new ObjectId("577b2d6787aebb198839d415")), 43 Update.Pull("Address", new { Id = new ObjectId("577b2d9387aebb2d7449367f") }.ToBsonDocument())); 44 45 46 //Query ChildDocument 47 var query = Query.EQ("_id", new ObjectId("577b30e087aebb34ec170e7a"));
var q = Query.ElemMatch("Address"", Query.EQ("Add", "北京市"));
var result5= collection.FindOne(Query.And(query,q));
备注:
mongodb for C# SDK版本:1.11(可支持mongodb 3.2版本)
mongodb版本:3.0.6
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端