今天主要测试了一下查询功能了,当然了主要还是为了让查询可以和我们平时使用的实体对象关联起来,并且 那些BsonDocument和Collection我们操作起来不是太方便的

还是首先定义了一个用户类,注意这个类需要和mongo中的对象的字段完全匹配,包括大小写,不然查询的时候会出现字段无法匹配的错误

  public class User
{
public ObjectId Id { get; set; }
public string Name { get; set; }
public int Age { get; set; } }

有了实体类就是怎么让查询结果和实体类关联起来了,

var list=     collection.FindAllAs<User>();

主要是在findAllAs的时候查出来一个泛型集合,但是这个集合无法转成List集合(当然了,是我不会转,还希望会转的拍砖),它返回的集合是MongoCurror类型的,操作起来也不方便,干脆就用弱类型接收吧。

值得欣慰 的是这个集合在遍历的时候可以转换成User对象。

最大的好消息是在对这个集合查询的时候支持linq查询,是不是太强大了,让我们一起欢呼吧!!

MongoDatabase db = MongoHelper.GetConnection();
MongoCollection collection = db.GetCollection<User>("user");
User user = new User();
user.Name = "lisi";
user.Age = ;
collection.Insert<User>(user);
var list= collection.FindAllAs<User>();
foreach (User item in list.Where(u=>u.Name=="lisi"))
{
Response.Write(item.Name);
}
//删除
// collection.Remove(new QueryDocument());

代码都很简单,主要是测试了一个把查询结果转成对象和一个linq条件查询

c#开发Mongo笔记第三篇的更多相关文章

  1. c#开发Mongo笔记第八篇

    到今天为止,Mongo开发的权限管理系统功能就做完了,剩下的就是完善构架,优化结构,只是现在c#操作Mongo的各种操作基本都掌握了 说到权限管理系统,其实再简单不过了,在关系型数据的是时代,我们通常 ...

  2. c#开发Mongo笔记第六篇

    之前写的五篇比较得到了大家的积极反馈,也有个别高手对我写我写出的代码进行了指教. 其中提到的我写的查询方法性能有问题,我想了想,如果mongo不是延时加载的话,那我的查询就真的有问题了,就成了查询出来 ...

  3. c#开发Mongo笔记第四篇

    今天是个伟大的日子,不得不说小苹果的歌词真是深入人心啊. 不过今天伟大并不是因为我种下一颗种子,而是我从今天不再写demo,而是进入项目的正式开发当中,毕竟项目时间有限(想必各位码农也都深有体会吧), ...

  4. c#开发Mongo笔记第七篇

    开发到这里遇到了一些问题,哪到这里想请教一下大家 今天我完成的是菜单功能, public class Menu { public ObjectId _id { get; set; } public i ...

  5. c#开发Mongo笔记第五篇

    现在增删查改算是都完成了,但是查询算是有点不完美的,相信现在用juqeryeasyui这一类的插件的人应该也不少吧,这样的话前台展示需要JSON格式的数据, 好在mogno驱动提供toJson()的函 ...

  6. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

  7. ASP.NET自定义控件组件开发 第一章 第三篇

    原文:ASP.NET自定义控件组件开发 第一章 第三篇 第三篇:第一章的完结篇 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待 ...

  8. Xamrin开发安卓笔记(三)

    http://www.cnblogs.com/minCS/p/4118170.html Xamrin开发安卓笔记(三)   安装片 Xamrin开发安卓笔记(一) Xamrin开发安卓笔记(二) 这次 ...

  9. ASP.NET自定义控件组件开发 第一章 第三篇 第一章的完结篇

    ASP.NET自定义控件组件开发 第一章 第三篇   第三篇:第一章的完结篇 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ...

随机推荐

  1. Java 二进制与十六进制转换

    Java 二进制与十六进制转换 二进制转换十六进制 /** * @description 将二进制转换成16进制 * * @param buf * @return */ public static S ...

  2. OpenGL 学习

    一.红宝书学习资料汇集 第八版的图书源码 源代码: http://opengl-redbook.com/Code/oglpg-8th-edition.zip 第九版的图书源码 http://www.o ...

  3. python(25)下载文件

    利用程序自己编写下载文件挺有意思的.Python中最流行的方法就是通过Http利用urllib或者urllib2模块.当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种 ...

  4. (JS实现顾客商品浏览记录以及购物车)Cookie的保存与删除

    //JS实现顾客浏览商品的记录以及实现购物车的功能function setCookie(name,value) { var Days = 30; var exp = new Date(); exp.s ...

  5. Python偏函数

    偏函数 一个带n 个参数,curried 的函数固化第一个参数为固定参数,并返回另一个带n-1 个参数函数对象 >>> from functools import partial & ...

  6. 使用AJAX完成用户名是否存在异步校验

    一.JSP代码: 1.事件触发:onblur 2.编写AJAX代码:向Action中提交,传递username参数 <script> function checkUsername(){ / ...

  7. 异常Throwable类

     所有异常类型都是Throwable类的子类,它派生出两个子类 Error和Exception          Error类:表示紧靠程序本身无法恢复的严重错误,如内存溢出,动态链接失败,虚拟机错误 ...

  8. 使用JDBC进行批处理

    在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. JDBC实现批处理有两种方式:statement和pr ...

  9. Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

    今天碰到了一个查询异常问题,上网查了一下,感谢原创和译者 如果你使用的数据库连接类是 the Data Access Application Blocks "SqlHelper" ...

  10. EF6+MVC5之Oracleo数据库的Code First方式实现

    折腾了好几天,在办公室机器上死活找不到ODP.net的Oracle数据库连接方式(但在家中电脑上正常).后来把之前安装的VS2013和所以安装的Oracle客气端统统卸载,重新安装visual stu ...