当前位置:Gxlcms > 数据库问题 > C# 操作 MongoDB

C# 操作 MongoDB

时间:2021-07-01 10:21:17 帮助过:22人阅读

System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using MongoDB.Driver; namespace MongoBase { internal class MongoBase { private static string _connStr = "mongodb://root:123456@127.0.0.1:27017"; private static string _dbName = "test"; private static MongoUrl url = new MongoUrl(_connStr); private static MongoClient client = new MongoClient(url); public static IMongoDatabase db = client.GetDatabase(_dbName); } public class MongoHelper<TEntity> { public string Name => typeof(TEntity).Name; public IMongoCollection<TEntity> Collection => MongoBase.db.GetCollection<TEntity>(Name); public List<TEntity> Queryable => Collection.AsQueryable().ToList(); public FilterDefinitionBuilder<TEntity> Filter => Builders<TEntity>.Filter; public UpdateDefinitionBuilder<TEntity> Update => Builders<TEntity>.Update; } }
  1. <span style="color: #0000ff">using</span><span style="color: #000000"> System;
  2. </span><span style="color: #0000ff">using</span><span style="color: #000000"> System.Collections.Generic;
  3. </span><span style="color: #0000ff">using</span><span style="color: #000000"> System.Text;
  4. </span><span style="color: #0000ff">using</span><span style="color: #000000"> MongoDB.Bson;
  5. </span><span style="color: #0000ff">using</span><span style="color: #000000"> MongoDB.Bson.Serialization.Attributes;
  6. </span><span style="color: #0000ff">namespace</span><span style="color: #000000"> MongoBase
  7. {
  8. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> EntityBase
  9. {
  10. </span><span style="color: #0000ff">public</span><span style="color: #000000"> EntityBase()
  11. {
  12. _id </span>=<span style="color: #000000"> ObjectId.GenerateNewId();
  13. createTime </span>=<span style="color: #000000"> DateTime.Now;
  14. isDelete </span>= <span style="color: #0000ff">false</span><span style="color: #000000">;
  15. id </span>=<span style="color: #000000"> _id.ToString();
  16. }
  17. [BsonId]
  18. </span><span style="color: #0000ff">public</span> ObjectId _id { <span style="color: #0000ff">get</span>; <span style="color: #0000ff">set</span><span style="color: #000000">; }
  19. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> id { <span style="color: #0000ff">get</span>; <span style="color: #0000ff">set</span><span style="color: #000000">; }
  20. </span><span style="color: #0000ff">public</span> DateTime? createTime { <span style="color: #0000ff">get</span>; <span style="color: #0000ff">set</span><span style="color: #000000">; }
  21. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">bool</span>? isDelete { <span style="color: #0000ff">get</span>; <span style="color: #0000ff">set</span><span style="color: #000000">; }
  22. }
  23. }</span>
  1. <span style="color: #0000ff">using</span><span style="color: #000000"> System;
  2. </span><span style="color: #0000ff">using</span><span style="color: #000000"> System.Collections.Generic;
  3. </span><span style="color: #0000ff">using</span><span style="color: #000000"> MongoBase;
  4. </span><span style="color: #0000ff">using</span><span style="color: #000000"> MongoDB.Bson;
  5. </span><span style="color: #0000ff">using</span><span style="color: #000000"> MongoDB.Driver;
  6. </span><span style="color: #0000ff">using</span><span style="color: #000000"> MongoDB.Driver.Linq;
  7. </span><span style="color: #0000ff">namespace</span><span style="color: #000000"> ConsoleApp5
  8. {
  9. </span><span style="color: #0000ff">class</span><span style="color: #000000"> Program
  10. {
  11. </span><span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> Main(<span style="color: #0000ff">string</span><span style="color: #000000">[] args)
  12. {
  13. MongoHelper</span><Video> videoHelper = <span style="color: #0000ff">new</span> MongoHelper<Video><span style="color: #000000">();
  14. </span><span style="color: #008000">//</span><span style="color: #008000">新增</span>
  15. videoHelper.Collection.InsertOne(<span style="color: #0000ff">new</span><span style="color: #000000"> Video()
  16. {
  17. Title</span>=<span style="color: #800000">"</span><span style="color: #800000">ggg</span><span style="color: #800000">"</span><span style="color: #000000">
  18. });
  19. </span><span style="color: #008000">//</span><span style="color: #008000">查找集合</span>
  20. <span style="color: #0000ff">var</span> list = videoHelper.Collection.Find(videoHelper.Filter.Eq(e => e.Category, <span style="color: #800000">"</span><span style="color: #800000">Horror</span><span style="color: #800000">"</span><span style="color: #000000">)).ToList();
  21. </span><span style="color: #008000">//</span><span style="color: #008000">方式一:拼接查找条件</span>
  22. List<FilterDefinition<Video>> listFilter = <span style="color: #0000ff">new</span> List<FilterDefinition<Video>><span style="color: #000000">()
  23. {
  24. videoHelper.Filter.Eq(e</span>=>e.Minutes,<span style="color: #800080">118</span><span style="color: #000000">),
  25. videoHelper.Filter.Eq(e</span>=>e.Title,<span style="color: #800000">"</span><span style="color: #800000">The Perfect Developer</span><span style="color: #800000">"</span><span style="color: #000000">)
  26. };
  27. </span><span style="color: #008000">//</span><span style="color: #008000">根据查找多个条件筛选集合</span>
  28. list =<span style="color: #000000"> videoHelper.Collection.Find(videoHelper.Filter.And(listFilter)).ToList();
  29. </span><span style="color: #008000">//</span><span style="color: #008000">方式二:拼接查找条件</span>
  30. <span style="color: #0000ff">var</span> filter = videoHelper.Filter.Eq(e => e.Title, <span style="color: #800000">"</span><span style="color: #800000">cys</span><span style="color: #800000">"</span>) & videoHelper.Filter.Eq(e => e.Category, <span style="color: #800000">"</span><span style="color: #800000">cys</span><span style="color: #800000">"</span><span style="color: #000000">);
  31. list </span>=<span style="color: #000000"> videoHelper.Collection.Find(filter).ToList();
  32. </span><span style="color: #008000">//</span><span style="color: #008000">拼接更新字段</span>
  33. <span style="color: #0000ff">var</span> updateDefinition = <span style="color: #0000ff">new</span> List<UpdateDefinition<Video>><span style="color: #000000">()
  34. {
  35. videoHelper.Update.Set(e</span>=>e.Title, <span style="color: #800000">"</span><span style="color: #800000">cys</span><span style="color: #800000">"</span><span style="color: #000000">),
  36. videoHelper.Update.Set(e</span>=>e.Category, <span style="color: #800000">"</span><span style="color: #800000">cys</span><span style="color: #800000">"</span><span style="color: #000000">)
  37. };
  38. </span><span style="color: #008000">//</span><span style="color: #008000">按照条件更新</span>
  39. <span style="color: #000000"> videoHelper.Collection.UpdateMany(videoHelper.Filter.And(listFilter),
  40. videoHelper.Update.Combine(updateDefinition));
  41. </span><span style="color: #008000">//</span><span style="color: #008000">删除</span>
  42. videoHelper.Collection.DeleteOne(videoHelper.Filter.Eq(e => e.Title, <span style="color: #800000">"</span><span style="color: #800000">Lost In Frankfurt am Main</span><span style="color: #800000">"</span><span style="color: #000000">));
  43. }
  44. }
  45. }</span>

 

  1. <span style="color: #0000ff">using</span><span style="color: #000000"> MongoBase;
  2. </span><span style="color: #0000ff">using</span><span style="color: #000000"> MongoDB.Bson;
  3. </span><span style="color: #0000ff">using</span><span style="color: #000000"> MongoDB.Bson.Serialization.Attributes;
  4. </span><span style="color: #0000ff">namespace</span><span style="color: #000000"> ConsoleApp5
  5. {
  6. </span><span style="color: #0000ff">internal</span> <span style="color: #0000ff">class</span><span style="color: #000000"> Video : EntityBase
  7. {
  8. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> Title { <span style="color: #0000ff">get</span>; <span style="color: #0000ff">set</span><span style="color: #000000">; }
  9. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> Category { <span style="color: #0000ff">get</span>; <span style="color: #0000ff">set</span><span style="color: #000000">; }
  10. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> Minutes { <span style="color: #0000ff">get</span>; <span style="color: #0000ff">set</span><span style="color: #000000">; }
  11. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> Comments { <span style="color: #0000ff">get</span>; <span style="color: #0000ff">set</span><span style="color: #000000">; }
  12. }
  13. }</span>

 

C# 操作 MongoDB

标签:minutes   ide   nbsp   root   mongo   ted   efi   public   system   

人气教程排行