1.构造实体类

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace EM.Model
 8 {
 9     public class News
10     {
11         public string _id { get; set; }
12         public string title { get; set; }
13         public string url { get; set; }
14         public string author { get; set; }
15         public int vote_count { get; set; }
16         public List<string> tags { get; set; }
17         public image image { get; set; }
18         public List<comments> comments { get; set; }
19         public DateTime createTime { get; set; }
20         public DateTime updateTime { get; set; }
21     }
22     public class image
23     {
24         public string url { get; set; }
25         public string caption { get; set; }
26         public string type { get; set; }
27         public string size { get; set; }
28         public string data { get; set; }
29     }
30     public class comments
31     {
32         public int userId { get; set; }
33         public string user { get; set; }
34         public string text { get; set; }
35         public DateTime createTime { get; set; }
36         public DateTime updateTime { get; set; }
37     }
38
39
40 }

2.增加一条记录

 1             News news = new News();
 2             news._id = Guid.NewGuid().ToString();
 3             news.title = "大新闻";
 4             news.url = "http://www.cnblogs.com/cnki/";
 5             news.author = "沐风";
 6             news.vote_count = 100;
 7             List<string> tagsList = new List<string>() { "国际", "编程", "dota" };
 8             news.tags = tagsList;
 9             image img = new image();
10             img.url = "http://www.cnblogs.com/cnki/";
11             img.caption = "好图";
12             img.type = "回忆录";
13             img.size = "3M";
14             img.data = "dota三人组";
15             news.image = img;
16
17             List<comments> commentsList = new List<EM.Model.comments>();
18             comments comment1 = new comments();
19             comment1.userId = 1;
20             comment1.user = "三生石";
21             comment1.text = "你所有的努力,只是为了更好的衬托别人的成功。";
22             comment1.createTime = DateTime.Now;
23             comment1.updateTime = DateTime.Now;
24             commentsList.Add(comment1);
25
26             comments comment2 = new comments();
27             comment2.userId = 2;
28             comment2.user = "影魔";
29             comment2.text = "明明可以靠脸吃饭,他却偏要靠才华,最后还是饿死了。";
30             comment2.createTime = DateTime.Now;
31             comment2.updateTime = DateTime.Now;
32             commentsList.Add(comment2);
33
34
35             news.comments = commentsList;
36
37             news.createTime = DateTime.Now;
38             news.updateTime = DateTime.Now;
39
40             bool b = MongoDBServiceFactory.CreateMongoDBService(conStrNo, databaseName).Insert<News>("News", news);

存入MongoDB后的单条集合格式

{"_id" : "95565797-8572-4281-b6e6-6820d0c8dc37","title" : "大新闻","url" : "http://www.cnblogs.com/cnki/","author" : "沐风","vote_count" : 100,"tags" : [ "国际", "编程", "dota"],"image" : {"url" : "http://www.cnblogs.com/cnki/","caption" : "好图","type" : "回忆录","size" : "3M","data" : "dota三人组"},"comments" : [ {"userId" : 1,"user" : "三生石","text" : "你所有的努力,只是为了更好的衬托别人的成功。","createTime" : ISODate("2016-12-05T13:40:46.142Z"),"updateTime" : ISODate("2016-12-05T13:40:46.142Z")}, {"userId" : 2,"user" : "影魔","text" : "明明可以靠脸吃饭,他却偏要靠才华,最后还是饿死了。","createTime" : ISODate("2016-12-05T13:40:46.142Z"),"updateTime" : ISODate("2016-12-05T13:40:46.142Z")}],"createTime" : ISODate("2016-12-05T13:40:46.142Z"),"updateTime" : ISODate("2016-12-05T13:40:46.142Z")
}

增加一条评论

1             comments commentsInfo = new comments();
2             commentsInfo.userId = 3;
3             commentsInfo.user = "mf";
4             commentsInfo.text = "世界太美好";
5             commentsInfo.createTime = DateTime.Now;
6             commentsInfo.updateTime = DateTime.Now;
7             var update = Builders<News>.Update.Push(m => m.comments, commentsInfo);
8             bool bUpdateOne = MongoDBServiceFactory.CreateMongoDBService(conStrNo, databaseName).UpdateOne<News>("News", m => m._id == "95565797-8572-4281-b6e6-6820d0c8dc37", update);

结果

 1 {
 2     "_id" : "95565797-8572-4281-b6e6-6820d0c8dc37",
 3     "title" : "大新闻",
 4     "url" : "http://www.cnblogs.com/cnki/",
 5     "author" : "沐风",
 6     "vote_count" : 100,
 7     "tags" : [
 8         "国际",
 9         "编程",
10         "dota"
11     ],
12     "image" : {
13         "url" : "http://www.cnblogs.com/cnki/",
14         "caption" : "好图",
15         "type" : "回忆录",
16         "size" : "3M",
17         "data" : "dota三人组"
18     },
19     "comments" : [
20         {
21             "userId" : 1,
22             "user" : "三生石",
23             "text" : "你所有的努力,只是为了更好的衬托别人的成功。",
24             "createTime" : ISODate("2016-12-05T13:40:46.142Z"),
25             "updateTime" : ISODate("2016-12-05T13:40:46.142Z")
26         },
27         {
28             "userId" : 2,
29             "user" : "影魔",
30             "text" : "明明可以靠脸吃饭,他却偏要靠才华,最后还是饿死了。",
31             "createTime" : ISODate("2016-12-05T13:40:46.142Z"),
32             "updateTime" : ISODate("2016-12-05T13:40:46.142Z")
33         },
34         {
35             "userId" : 3,
36             "user" : "mf",
37             "text" : "世界太美好",
38             "createTime" : ISODate("2016-12-05T13:44:16.831Z"),
39             "updateTime" : ISODate("2016-12-05T13:44:16.832Z")
40         }
41     ],
42     "createTime" : ISODate("2016-12-05T13:40:46.142Z"),
43     "updateTime" : ISODate("2016-12-05T13:40:46.142Z")
44 }

3.查询一条记录

 News news = MongoDBServiceFactory.CreateMongoDBService(conStr, databaseName).Single<News>("News", m => m.author == "沐风");

4.更新一条记录

a.支持数增加1

 var updateDef = Builders<News>.Update.Inc(x => x.vote_count, 1);bool update = MongoDBServiceFactory.CreateMongoDBService(conStr, databaseName).UpdateOne<News>("News", x => x._id == "95565797-8572-4281-b6e6-6820d0c8dc37", updateDef);

b.修改Title字段

 var update = Builders<News>.Update.Set(m => m.title, "好大的新闻");bool updateResult = MongoDBServiceFactory.CreateMongoDBService(conStr, databaseName).UpdateOne("News", x => x._id == "95565797-8572-4281-b6e6-6820d0c8dc37", update);

c.根据userId更新一条子评论的comments字段

 1             //找到子文档
 2             var a = Builders<News>.Filter.Eq(x => x._id, "95565797-8572-4281-b6e6-6820d0c8dc37");
 3             var b = Builders<News>.Filter.ElemMatch(x => x.comments, y => y.userId == 1);
 4             var filter = Builders<News>.Filter.And(new FilterDefinition<News>[] { a, b });
 5             //更新子文档的字段
 6             var field = new StringFieldDefinition<News, string>("comments.$.comments");
 7             var update = Builders<News>.Update.Set(field, "修改后的我");
 8             //更新库
 9             UpdateResult updateResult = MongoDBServiceFactory.CreateMongoDBService(conStrNo, databaseName).DocumentUpdate("News", filter, update);
10             bool bupdateResult= updateResult != null && updateResult.ModifiedCount > 0 && updateResult.ModifiedCount == updateResult.MatchedCount ? true : false;

5.删除

 bool delete = MongoDBServiceFactory.CreateMongoDBService(conStr, databaseName).Delete<News>("News", x => x._id == "95565797-8572-4281-b6e6-6820d0c8dc37") > 0;

  

转载于:https://www.cnblogs.com/cnki/p/6101597.html

MongoDB探索之路(二)——系统设计之CRUD相关推荐

  1. MongoDB 教程二: 添加, 删除,查询 shell命令

    视频:MongoDB 教程二: 添加, 删除,查询 shell命令 MongoDB Shell 常用操作命令 MonoDB   shell命令操作语法和JavaScript很类似,其实控制台底层的查询 ...

  2. MongoDB聚合(二)

    2019独角兽企业重金招聘Python工程师标准>>> MongoDB聚合(二)2.3 $group $group操作可以将文档根据给定字段的不同值进行分组. 如果选定了需要分组的字 ...

  3. 用pymongo对mongoDB增删改查(CRUD)

    pymongo操作mongoDB的增删改查 | CRUD pymongo简介 连接本地mongoDB 连接远程MongoDB 数据库CRUD 使用现有数据库 增 删 改 查 集合CRUD 增 删 改 ...

  4. python mongodb orm_Django 通过 mongoengine 连接 MongoDB 进而使用orm进行CRUD

    一. 在python脚本中, 我们通常可以使用pymongo模块实现与mongodb数据库的交互, 但是在使用Django框架进行定制开发的web server 项目中, 仍然使用pymongo模块的 ...

  5. mongodb 去重查询 Java,mongodb篇二:mongodb克隆远程数据库,去重查询的命令及对应java语句...

    另外附上mongodb eclipse插件地址: http://www.jumperz.net/update/ import java.net.UnknownHostException;import ...

  6. 大前端养成之路:学一点MongoDB(二)

    MongoDB数据建模 MongoDB数据建模是使用MongoDB进行数据存储和管理的重要环节.下面将分为三部分,分别是数据建模基础知识.MongoDB数据建模原则以及数据建模案例实战.同时,还将使用 ...

  7. SpringBoot整合MongoDB数据库并实现基础CRUD

    MongoDB安装教程:MongoDB数据库安装以及将MongoDB设置为系统服务 MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,由C++语言编写.旨为WEB应用提供可扩展的高性 ...

  8. mongodb 结果二次调用_mongodb慢查询记录

    在 MySQL中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是MongoDatabase Profiler.不仅有,而且还有一些比MySQL的 ...

  9. mongodb教程二

    MongoDB 创建数据库: MongoDB 创建数据库的语法格式如下: use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库. 如果你想查看所有数据库,可以使用  ...

最新文章

  1. 如何成为月入过万的斜杠青年
  2. MFC Ribbon风格界面去掉左上的Quick Access Toolbar小三角
  3. 软件测试——等价类划分
  4. ios之UIImageView
  5. Mina框架项目运用
  6. 理解SQL SERVER中的分区表
  7. Mysql中的行级锁、表级锁、页级锁
  8. ffmpeg最新源代码(定期更新)
  9. 微信浏览器中IOS12键盘回弹的问题
  10. 11. 判断是给属性前加typeof 可以同时判断属性是否存在
  11. 【文献翻译】基于CVSS的IT系统网络安全风险定量评估方法-A Quantitative CVSS-Based Cyber Security Risk Assessment Methodology
  12. 常用开发工具及常用DOS命令
  13. 计算机中丢失glut.dll,OpenGl的源程序,运行就提示,计算机丢失 glut32.dll文件
  14. 类型类 V.S. 桥接模式:撞衫不可怕,谁丑谁尴尬
  15. 一篇文章带你吃透VUE响应式原理
  16. 假如当初知道skycc营销软件是不是比现在好
  17. 鸡声茅店月,人迹板桥霜;莫道君行早,更有早行人
  18. 【转】草根老师的 linux字符设备驱动详解
  19. [Python] Python 获取中文的首字母 和 全部拼音首字母
  20. 用户体验设计—影响定制化设计的因素

热门文章

  1. word2vec 中的数学原理具体解释(四)基于 Hierarchical Softmax 的模型
  2. Linux下基于官方源代码RPM包构建自定义MySQL RPM包
  3. 清除tomcat的缓存
  4. 豆瓣FLASHMP3播放器
  5. 天天Linux-安装samba,nasm
  6. 异步复位和同步释放电路的详细解释
  7. 网页编辑html中怎么写搜索代码,如何在html页面中实现查找功能
  8. 《愤怒的小鸟》对移动互联网经营的启示
  9. 二极管7种应用电路详解之六
  10. CRNN竞赛程序实现过程