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

好在mogno驱动提供toJson()的函数,但是却无法在前台显示,不知道是不是objectid导致的,下面是我通过firebug看到的请求数据。

{"total":"","rows":[{ "_id" : ObjectId("545c395937d9dc8a18f0c51a"), "UserName" : "admin", "Password" : "81DC9BDB52D04DC20036DBD8313ED055", "CustomID" : CSUUID("21410650-4219-46eb-baac-3a207a570225") }, { "_id" : ObjectId("545c66438ef275179cd6b02b"), "UserName" : "tester", "Password" : "E10ADC3949BA59ABBE56E057F20F883E", "CustomID" : CSUUID("deb396b4-e90b-449a-86b2-957bc0fc7f06") }]}

{"total":"","rows":[{"_id":"545c395937d9dc8a18f0c51a","UserName":"admin","CustomID":"21410650-4219-46eb-baac-3a207a570225"},{"_id":"545c66438ef275179cd6b02b","UserName":"tester","CustomID":"deb396b4-e90b-449a-86b2-957bc0fc7f06"}]}

上边是toJson()函数生成的,不知道怎么能去掉objectid这样不和谐的东西,希望知道的大牛不吝赐教。

然后说话我的查询方法吧,我首先返回一个collection

  public static MongoCollection GetCollection()
{
MongoDatabase db = MongoHelper.GetConnection();
return db.GetCollection<User>("User");
}

然后先把这个collection转成List集合再进行分页和查询操作

MongoCollection collection = DAL.DALUser.GetCollection();
var list= collection.FindAllAs<User>();
List<User> users = list.ToList();
if (Request.QueryString["condition"] != null)
{
searchstr = Request.QueryString["condition"];
users = list.Where(u=>u.UserName.Contains(searchstr)).ToList();
}

本想这样直接变成json的

   // return Content("{\"total\":\""+list.Count()+"\",\"rows\":"+ users.Take(TakeNum).Skip(TakeNum*SkipNum).ToJson().ToString()+"}");

但是不可以,目前只好先自己拼json了。

然后说说更新吧,查询我也是先写了一个更新方法

public static void Update(IMongoQuery query,IMongoUpdate  update)
{
MongoDatabase db = MongoHelper.GetConnection();
MongoCollection collection = db.GetCollection<User>("User");
collection.Update(query, update);
}

通过传参的方式进行修改,我觉得这样还是相对灵活的,然后调用方法如下

var query = Query.And(Query.EQ("_id", user._id));
var update = Update.Set("Password", user.Password);
DALUser.Update(query, update);

然后业务逻辑层去指定查询方法和具体需要修改的字段。

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. c#开发Mongo笔记第二篇

    写到第二篇不得不说是我之前犯了一个小错误,其实实现子表存储也是很简单的事,先说我想实现什么样的效果吧 就是用户表里有个成绩字段,成绩字段是个子表 其实实现这个功能也很简单,用面向对象的思想很好理解,子 ...

  8. EnjoyingSoft之Mule ESB开发教程系列第五篇:控制消息的流向-数据路由

    目录 1. 使用场景 2. 基于消息头的路由 2.1 使用JSON提交订单的消息 2.2 使用XML提交订单的消息 2.3 使用Choice组件判断订单格式 3. 基于消息内容的路由 4. 其他控制流 ...

  9. c#开发Mongo笔记第一篇

    现在开发的这个项目要用mongo数据库开发,发现网上的这方面教程还是比较少的,只能边看官方说明边进行开发,再开发过程中写下笔记,也算上是一个总结吧. 我开发使用的是vs2013了,驱动用的是最新的1. ...

随机推荐

  1. 安装Yii框架时init.bat闪退的处理方法

    已经开启了php_openssl扩展还是会闪退 1.右击'计算机'-'属性'-'高级系统属性'-'环境变量(最下边)': 2.在'系统变量'里找到'path',双击,出现'编辑系统变量',在'变量值' ...

  2. sql创建表格 转载

    http://blog.csdn.net/wuxiaokaixinguo/article/details/8293048 检查数据库中是否存在某个表,不存在则生成该表方法一:IF NOT EXISTS ...

  3. sql server中的 SET NOCOUNT ON 的含义

    每次我们在使用查询分析器调试SQL语句的时候,通常会看到一些信息,提醒我们当前有多少个行受到了影响,这是些什么信息?在我们调用的时候这些信息有用吗?是否可以关闭呢? 答案是这些信息在我们的客户端的应用 ...

  4. 44. Decode Ways && Gray Code

    Decode Ways A message containing letters from A-Z is being encoded to numbers using the following ma ...

  5. CoolTrayIcon4.0

    CoolTrayIcon:在任务栏放置图标的控件,是同类空间中功能最为完善和强大的. 1.支持动态图标 2.交互式气球样式的提示框 3.支持bitmaps到icons的转换 4.支持设计状态预览 5. ...

  6. 博客后台迁移至i.cnblogs.com及小经验分享

    大家好!我们已经将博客后台从原来的 www.cnblogs.com/博客地址名/admin/ 迁移至独立的二级域名 i.cnblogs.com.如果您发现任何问题,麻烦您立即向我们反馈. 虽然这次迁移 ...

  7. Lighttpd虚拟主机和多域名的配置

    lighttpd是个轻巧的web服务器组件,在linux系统上较为流行,功能能满足一般网站的需求(虚拟主机,伪静态,防盗链等),而跑起来负载却低于apache. 一般网站地址的形式为www.xxx.c ...

  8. 【转】java的socket编程

    转自:http://www.cnblogs.com/linzheng/archive/2011/01/23/1942328.html 一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台 ...

  9. 关于delphi 中 Sender的学习

    sender是 事件的触发者,我发现所有的组件的事件 基本上都是 传Sender. 示例效果图: 代码: 接着来,既然TButton是个类,且publish哪里有事件,我们也可以看看这个事件的原型.

  10. linq to entity中遇到的问题

    当使用 from m in _db.students从数据库中获取数据时,数据库中的数据类型和C#中的不同,所以可能会出错!先作_db.students.ToList()然后select