zoukankan      html  css  js  c++  java
  • c#开发Mongo笔记第六篇

    之前写的五篇比较得到了大家的积极反馈,也有个别高手对我写我写出的代码进行了指教。

    其中提到的我写的查询方法性能有问题,我想了想,如果mongo不是延时加载的话,那我的查询就真的有问题了,就成了查询出来所有的数据再进行二次筛选了。

    可能这也是之前总是使用entity framework框架导致的习惯性这么写了吧。今天赶紧进行了一下代码,现在贴出来一下,省的之前的错误写法误导了大家,再此也感谢大家对我的批评指正

    public static User GetById(ObjectId id)
            {
                MongoDatabase db = MongoHelper.GetConnection();
                MongoCollection collection = db.GetCollection<User>("User");
            return    collection.FindOneByIdAs<User>(id);
             
            }
            public static User GetByName(string name)
            {
                MongoDatabase db = MongoHelper.GetConnection();
                MongoCollection collection = db.GetCollection<User>("User");
                var query = Query.And(Query.EQ("UserName", name));
             return   collection.FindOneAs<User>(query);
         
            }
          
            public static MongoCollection GetCollection()
            {
                MongoDatabase db = MongoHelper.GetConnection();
                return db.GetCollection<User>("User");
            }
           
            public static bool IsHasUser(IMongoQuery query)
            {
                MongoDatabase db = MongoHelper.GetConnection();
                MongoCollection collection = db.GetCollection<User>("User");
            return    collection.Count(query)>0;
            
            }
       
            public static void Update(IMongoQuery query,IMongoUpdate  update)
            {
                MongoDatabase db = MongoHelper.GetConnection();
                MongoCollection collection = db.GetCollection<User>("User");
                collection.Update(query, update);
            }

    从灵活的角度我我觉得还是都传imongoquery类型的参数吧,比直接传string 类型的字符串要灵活的多,调用这个函数的时候我通常这么写

    var queryName = Query.And(Query.EQ("UserName", cwsnuser));
                            //验证用户是否存在
                            if (DALUser.IsHasUser(queryName))
                            {
                                return Content("2");//用户名重复
                            }
  • 相关阅读:
    python 类的私有属性和方法 (转载)
    python 子类继承父类__init__(转载)
    python 面向对象(类)--学习笔记
    python 迭代器 生成器
    python 从csv文件插入mysql数据库
    python 异常处理【转载】
    大数据-hadoop学习记录
    重看计算机基础1:数据线、地址线,按字、按字节寻址。
    利用requirejs实现vue的模块化开发
    开发vue但不使用vue-cli和webpack相关注意事项
  • 原文地址:https://www.cnblogs.com/wuxl360/p/6022361.html
Copyright © 2011-2022 走看看