public long CountAll(out string msg)
        {
            Mongo mongo = new Mongo(connectionString);
            MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;
            MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;

            try
            {
                mongo.Connect();
                List<EndUser> userList = new List<EndUser>();
                IEnumerable<Document> doc = mongoCollection.FindAll().Documents;
                foreach (Document d in doc)
                {
                    EndUser user = new EndUser();
                    user.AutoID = d["AutoID"].ToString();
                    user.EnduserName = d["EnduserName"].ToString();
                    user.Identities = d["Identities"].ToString().Split('|');
                    user.IsValid = bool.Parse(d["IsValid"].ToString());
                    user.LastModifyTime = DateTime.Parse(d["LastModifyTime"].ToString());
                    user.SimCardNo = d["SimCardNo"].ToString();
                    userList.Add(user);
                }

                //Document[] docs=  doc.ToArray<Document>();
                msg = "查询成功";
                mongo.Disconnect();
                return userList.Count;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                mongo.Disconnect();
                return 0;
            }
        }
Example #2
0
        /// <summary>
        /// 删除操作
        /// </summary>
        /// <param name="person"></param>
        /// <returns></returns>
        public void Delete(Expression <Func <T, bool> > func)
        {
            using (MongoDB.Mongo mongo = new MongoDB.Mongo(configuration))
            {
                try
                {
                    mongo.Connect();

                    var db = mongo.GetDatabase(databaseName);

                    var collection = db.GetCollection <T>(collectionName);

                    //这个地方要注意,一定要加上T参数,否则会当作object类型处理
                    //导致删除失败
                    collection.Remove <T>(func);

                    mongo.Disconnect();
                }
                catch (Exception)
                {
                    mongo.Disconnect();
                    throw;
                }
            }
        }
Example #3
0
        /// <summary>
        ///读取单条记录
        /// </summary>
        /// <param name="person"></param>
        /// <returns></returns>
        public T Single(Expression <Func <T, bool> > func)
        {
            using (MongoDB.Mongo mongo = new MongoDB.Mongo(configuration))
            {
                try
                {
                    mongo.Connect();

                    var db = mongo.GetDatabase(databaseName);

                    var collection = db.GetCollection <T>(collectionName);

                    var single = collection.Linq().FirstOrDefault(func);

                    mongo.Disconnect();

                    return(single);
                }
                catch (Exception)
                {
                    mongo.Disconnect();
                    throw;
                }
            }
        }
Example #4
0
        /// <summary>
        ///获取集合
        /// </summary>
        /// <param name="person"></param>
        /// <returns></returns>
        public List <T> List(int pageIndex, int pageSize, Expression <Func <T, bool> > func, out int pageCount)
        {
            pageCount = 0;

            using (MongoDB.Mongo mongo = new MongoDB.Mongo(configuration))
            {
                try
                {
                    mongo.Connect();

                    var db = mongo.GetDatabase(databaseName);

                    var collection = db.GetCollection <T>(collectionName);

                    pageCount = Convert.ToInt32(collection.Count());

                    var personList = collection.Linq().Where(func).Skip(pageSize * (pageIndex - 1))
                                     .Take(pageSize).Select(i => i).ToList();

                    mongo.Disconnect();

                    return(personList);
                }
                catch (Exception)
                {
                    mongo.Disconnect();
                    throw;
                }
            }
        }
Example #5
0
        static void Main(string[] args)
        {
            Mongo mongo = new Mongo(connectionString);

            //定义一个文档对象,存入两个键值对
            mongo.Connect();
            //获取databaseName对应的数据库,不存在则自动创建
            MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;
            //获取collectionName对应的集合,不存在则自动创建
            MongoCollection <Document> mongoCollection = mongoDatabase.GetCollection <Document>(collectionName) as MongoCollection <Document>;

            try
            {
                Document doc = new Document();
                doc["ID"]  = 1;
                doc["Msg"] = "Hello World!";

                //将这个文档对象插入集合
                mongoCollection.Insert(doc);
                //在集合中查找键值对为ID=1的文档对象
                Document docFind = mongoCollection.FindOne(new Document {
                    { "ID", 1 }
                });
                //输出查找到的文档对象中键“Msg”对应的值,并输出
                Console.WriteLine(Convert.ToString(docFind["Msg"]));
            }
            finally
            {
                //关闭链接
                mongo.Disconnect();
            }
        }
Example #6
0
        /// <summary>
        /// 更新操作
        /// </summary>
        /// <param name="person"></param>
        /// <returns></returns>
        public void Update(T t, Expression <Func <T, bool> > func)
        {
            using (MongoDB.Mongo mongo = new MongoDB.Mongo(configuration))
            {
                try
                {
                    mongo.Connect();

                    var db = mongo.GetDatabase(databaseName);

                    var collection = db.GetCollection <T>(collectionName);

                    collection.Update <T>(t, func, true);

                    mongo.Disconnect();
                }
                catch (Exception)
                {
                    mongo.Disconnect();
                    throw;
                }
            }
        }
Example #7
0
        /// <summary>
        /// 插入操作
        /// </summary>
        /// <param name="person"></param>
        /// <returns></returns>
        public void Insert(T t)
        {
            using (MongoDB.Mongo mongo = new MongoDB.Mongo(configuration))
            {
                try
                {
                    mongo.Connect();

                    var db = mongo.GetDatabase(databaseName);

                    var collection = db.GetCollection <T>(collectionName);

                    collection.Insert(t, true);

                    mongo.Disconnect();
                }
                catch (Exception)
                {
                    mongo.Disconnect();
                    throw;
                }
            }
        }
Example #8
0
        /// <summary>
        /// 记录日志
        /// </summary>
        /// <param name="ex">出错的信息</param>
        public static void LogRecord(Exception ex)
        {
            Mongo mongoDBLog = null;
            try
            {
                mongoDBLog = new Mongo(ConfigurationManager.AppSettings["mongoDBConfig"]);
                mongoDBLog.Connect();
                var dbLog = mongoDBLog.GetDatabase("USTALogs");

                var collection = dbLog.GetCollection<USTALogs>(DateTime.Now.Date.ToString("yyyy-MM-dd"));

                USTALogs ustaLogs = new USTALogs
                {
                    errorTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    errorURL = HttpContext.Current.Request.Url.ToString(),
                    accessIP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"],
                    errorCode = System.Runtime.InteropServices.Marshal.GetHRForException(ex).ToString(),
                    errorObject = ex.Source,
                    errorStackTrace = ex.StackTrace,
                    errorMessage = ex.Message,
                    errorHelpLink = ex.HelpLink,
                    errorMethod = (ex.TargetSite == null ? string.Empty : ex.TargetSite.ToString())
                };

                collection.Insert(ustaLogs);
            }
            catch (Exception mongoDBLogException)
            {
                string mongoDBInfoError = HttpContext.Current.Server.MapPath("/LogFiles/WriteMongoDBInfoError_" + DateTime.Now.Date.ToString("yyyy-MM-dd"));

                if (!System.IO.File.Exists(mongoDBInfoError))
                {
                    System.IO.File.Create(mongoDBInfoError);
                }
            }
            finally
            {
                if (mongoDBLog != null)
                {
                    mongoDBLog.Disconnect();
                    mongoDBLog.Dispose();
                }
            }

            ////错误信息
            //string exceptionMessage = "\n出错页面地址为:" + HttpContext.Current.Request.Url.ToString() + "\n\n访问者IP为:" + HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] + "\n" + "\n异常码为:" + System.Runtime.InteropServices.Marshal.GetHRForException(ex) + "\n出错对象为:" + ex.Source + "\n堆栈信息为:" + ex.StackTrace + "\n出错函数为:" + ex.TargetSite + "\n出错信息为:" + ex.Message + "\n参考帮助链接为:" + ex.HelpLink + "\n\n";
            ////记录错误日志
            //log.Error(exceptionMessage);
        }
Example #9
0
        public void GivenIHaveNoProfileProperties()
        {
            using (var mongo = new Mongo())
            {
                mongo.Connect();

                IMongoDatabase db = mongo.GetDatabase("MetaProfiler");

                IMongoCollection mongoCollection = db.GetCollection("ProfileProperties");

                mongoCollection.Remove(new Document());

                mongo.Disconnect();
            }
        }
Example #10
0
        public List<GeoCity> GetCitiesByLatitudeLongitudeRadius(double latitude, double longitude, int radiusMiles)
        {
            using (var mongo = new Mongo(ConfigurationManager.ConnectionStrings["GeoServer"].ConnectionString))
            {
                mongo.Connect();
                var geoDB = mongo.GetDatabase("geo");
                var citiesCollection = geoDB.GetCollection<GeoCity>("cities");

                var filterDocument = new Document();
                filterDocument.Add("Coord", new Document().Add("$within", new Document().Add("$center", new object[] { new double[] { latitude, longitude }, radiusMiles / 60.0 })));
                filterDocument.Add("G3GeoID", new Document().Add("$ne", null));

                var foundCities = citiesCollection.Find(filterDocument).Documents.Distinct(new GeoCityComparer()).OrderBy(city => city.GoogleCode).ToList();
                mongo.Disconnect();

                return foundCities;
            }
        }
Example #11
0
        public void TestCode()
        {
            //链接字符串
            string connectionString = "mongodb://localhost";

            //数据库名
            string databaseName = "myDatabase";

            //集合名
            string collectionName = "myCollection";
            
            //定义Mongo服务
            Mongo mongo = new Mongo(connectionString);

            //获取databaseName对应的数据库,不存在则自动创建
            MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;

            //获取collectionName对应的集合,不存在则自动创建
            MongoCollection<T> mongoCollection = mongoDatabase.GetCollection<T>(collectionName) as MongoCollection<T>;
            
            //链接数据库
            mongo.Connect();
            try
            {
                //定义一个文档对象,存入两个键值对
                T doc = new T();
                doc["ID"] = 1;
                doc["Msg"] = "Hello World!";

                //将这个文档对象插入集合
                mongoCollection.Insert(doc);

                //在集合中查找键值对为ID=1的文档对象
                T docFind = mongoCollection.FindOne(new T { { "ID", 1 } });
               
                //输出查找到的文档对象中键“Msg”对应的值,并输出
                Console.WriteLine(Convert.ToString(docFind["Msg"]));
            }
            finally
            {
                //关闭链接
                mongo.Disconnect();
            }
        }
Example #12
0
        public Document GetMongoData()
        {
            //链接字符串
            string connectionString = "mongodb://localhost";

            //数据库名
            string databaseName = "myDatabase";

            //集合名
            string collectionName = "myCollection";

            //定义Mongo服务
            Mongo mongo = new Mongo(connectionString);

            //获取databaseName对应的数据库,不存在则自动创建
            MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;

            //获取collectionName对应的集合,不存在则自动创建
            MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;

            //链接数据库
            mongo.Connect();
            try
            {
                //定义一个文档对象,存入两个键值对
                Document doc = new Document();
                doc["ID"] = 1;
                doc["Msg"] = "Hello World!";

                //将这个文档对象插入集合
                mongoCollection.Insert(doc);

                //在集合中查找键值对为ID=1的文档对象
                Document docFind = mongoCollection.FindOne(new Document { { "ID", 1 } });

                //输出查找到的文档对象中键“Msg”对应的值,并输出
                //txtContent.Text = Convert.ToString(docFind["Msg"]);
            }
            finally
            {
                //关闭链接
                mongo.Disconnect();
            }
        }
        public static Document FindOne(string mongoConnsring, string mongoDbName, string mongoCollectionName, object spec)
        {
            using (Mongo mongo = new Mongo(mongoConnsring))
            {
                //获取databaseName对应的数据库,不存在则自动创建
                MongoDatabase mongoDatabase = mongo.GetDatabase(mongoDbName) as MongoDatabase;

                //获取collectionName对应的集合,不存在则自动创建
                MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(mongoCollectionName) as MongoCollection<Document>;

                //链接数据库
                mongo.Connect();

                ////在集合中查找键值对为ID=1的文档对象
                Document docFind = mongoCollection.FindOne(spec);

                mongo.Disconnect();
 
                return docFind;
            }
        }
Example #14
0
        public bool DeleteEnduser(string iSimCardNo, out string msg)
        {
            Mongo mongo = new Mongo(connectionString);
            MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;
            MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;

            try
            {
                mongo.Connect();
                //List<EndUser> userList = new List<EndUser>();
                IEnumerable<Document> doc = mongoCollection.Find(new Document { { "SimCardNo", iSimCardNo } }).Documents;
                mongoCollection.Remove(new Document { { "SimCardNo", iSimCardNo } });
                //foreach (Document d in doc)
                //{
                //    EndUser user = new EndUser();
                //    user.AutoID = d["AutoID"].ToString();
                //    user.EnduserName = d["EnduserName"].ToString();
                //    user.Identities = d["Identities"].ToString().Split('|');
                //    user.IsValid = bool.Parse(d["IsValid"].ToString());
                //    user.LastModifyTime = DateTime.Parse(d["LastModifyTime"].ToString());
                //    user.SimCardNo = d["SimCardNo"].ToString();
                //    userList.Add(user);
                //}
                msg = "删除成功";
                mongo.Disconnect();
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                mongo.Disconnect();
                return false;
            }
        }
Example #15
0
        private bool DeleteAll()
        {
            Mongo mongo = new Mongo(connectionString);
            MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;
            MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;
            mongo.Connect();
            try
            {

                mongoCollection.Remove(new Document { });
                mongo.Disconnect();
                return true;
            }
            catch
            {
                mongo.Disconnect();
                return false;
            }
        }
Example #16
0
        public bool UpdateEndusers(EndUser[] newUsers, out string msg)
        {
            Mongo mongo = new Mongo(connectionString);
            MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;
            MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;

            try
            {
                mongo.Connect();
                for (int i = 0; i < newUsers.Length; ++i)
                {
                    List<EndUser> userList = new List<EndUser>();

                    Document enduser1 = new Document();
                    enduser1["AutoID"] = newUsers[i].AutoID;
                    enduser1["EnduserName"] = newUsers[i].EnduserName;
                    enduser1["SimCardNo"] = newUsers[i].SimCardNo;
                    enduser1["Identities"] = getIdentitiesString(newUsers[i].Identities);
                    enduser1["LastModifyTime"] = newUsers[i].LastModifyTime;
                    enduser1["IsValid"] = newUsers[i].IsValid;

                    Document doc = new Document { { "SimCardNo", newUsers[i].SimCardNo } };
                    if (doc == null)
                    {
                        msg = "不存在该SIM卡号:" + newUsers[i].SimCardNo.ToString();
                        mongo.Disconnect();
                        return false;
                    }
                    mongoCollection.Update(new Document("$set", enduser1), doc);
                }
                msg = "更新成功";
                mongo.Disconnect();
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                mongo.Disconnect();
                return false;
            }
        }
Example #17
0
        public bool UpdateEnduser(EndUser newUser, out string msg)
        {
            Mongo mongo = new Mongo(connectionString);
            MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;
            MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;

            try
            {
                mongo.Connect();
                List<EndUser> userList = new List<EndUser>();

                Document enduser1 = new Document();
                enduser1["AutoID"] = newUser.AutoID;
                enduser1["EnduserName"] = newUser.EnduserName;
                enduser1["SimCardNo"] = newUser.SimCardNo;
                enduser1["Identities"] = getIdentitiesString(newUser.Identities);
                enduser1["LastModifyTime"] = newUser.LastModifyTime;
                enduser1["IsValid"] = newUser.IsValid;

                Document doc = new Document { { "SimCardNo", newUser.SimCardNo } };
                if (doc == null)
                {
                    msg = "不存在该SIM卡号";
                    mongo.Disconnect();
                    return false;
                }
                mongoCollection.Update(new Document("$set", enduser1), doc);
                //IEnumerable<Document> doc2 = mongoCollection.Find(new Document { { "SimCardNo", newUser.SimCardNo } }).Documents;
                //foreach (Document d in doc2)
                //{
                //    EndUser user = new EndUser();
                //    user.AutoID = d["AutoID"].ToString();
                //    user.EnduserName = d["EnduserName"].ToString();
                //    user.Identities = d["Identities"].ToString().Split('|');
                //    user.IsValid = bool.Parse(d["IsValid"].ToString());
                //    user.LastModifyTime = DateTime.Parse(d["LastModifyTime"].ToString());
                //    user.SimCardNo = d["SimCardNo"].ToString();
                //    userList.Add(user);
                //}
                msg = "更新成功";
                mongo.Disconnect();
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                mongo.Disconnect();
                return false;
            }
        }
Example #18
0
        public EndUser[] SelectEnduserByName(string iEnduserName, out string msg)
        {
            Mongo mongo = new Mongo(connectionString);
            MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;
            MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;

            try
            {
                mongo.Connect();
                List<EndUser> userList = new List<EndUser>();
                MongoRegex reg = new MongoRegex(".*" + iEnduserName + ".*", MongoRegexOption.IgnoreCase);
                Document docEnduserName = new Document { { "name", reg } };
                IEnumerable<Document> doc = mongoCollection.Find(docEnduserName).Documents;
                foreach (Document d in doc)
                {
                    EndUser user = new EndUser();
                    user.AutoID = d["AutoID"].ToString();
                    user.EnduserName = d["EnduserName"].ToString();
                    user.Identities = d["Identities"].ToString().Split('|');
                    user.IsValid = bool.Parse(d["IsValid"].ToString());
                    user.LastModifyTime = DateTime.Parse(d["LastModifyTime"].ToString());
                    user.SimCardNo = d["SimCardNo"].ToString();
                    userList.Add(user);
                }
                msg = "查询成功";
                mongo.Disconnect();
                return userList.ToArray();
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                mongo.Disconnect();
                return null;
            }
        }
Example #19
0
        public bool InsertEndusers(EndUser[] newUsers, out string msg)
        {
            Mongo mongo = new Mongo(connectionString);
            MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;
            MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;

            try
            {
                mongo.Connect();
                for (int i = 0; i < newUsers.Length; ++i)
                {
                    IEnumerable<Document> doc = mongoCollection.Find(new Document { { "SimCardNo", newUsers[i].SimCardNo } }).Documents;

                    if (doc == null || doc.Count() == 0)
                    {

                        Document enduser1 = new Document();
                        enduser1["AutoID"] = newUsers[i].AutoID;
                        enduser1["EnduserName"] = newUsers[i].EnduserName;
                        enduser1["SimCardNo"] = newUsers[i].SimCardNo;
                        enduser1["Identities"] = getIdentitiesString(newUsers[i].Identities);
                        enduser1["LastModifyTime"] = newUsers[i].LastModifyTime;
                        enduser1["IsValid"] = newUsers[i].IsValid;

                        mongoCollection.Save(enduser1);

                    }
                    else
                    {
                        msg = "用户已存在";
                        mongo.Disconnect();
                        return false;
                    }
                }
                msg = "插入成功";
                mongo.Disconnect();
                return true;

            }
            catch (Exception ex)
            {
                msg = ex.Message;
                mongo.Disconnect();
                return false;
            }
        }
Example #20
0
        public static void Main(string[] args)
        {
            var config = new MongoConfigurationBuilder();

            // COMMENT OUT FROM HERE
            config.Mapping(mapping =>
            {
                mapping.DefaultProfile(profile =>
                {
                    profile.SubClassesAre(t => t.IsSubclassOf(typeof(MyClass)));
                });
                mapping.Map<MyClass>();
                mapping.Map<SubClass>();
            });
            // TO HERE

            config.ConnectionString("Server=127.0.0.1");

            using (Mongo mongo = new Mongo(config.BuildConfiguration()))
            {
                mongo.Connect();
                try
                {
                    var db = mongo.GetDatabase("TestDb");
                    var collection = db.GetCollection<MyClass>();

                    MyClass square = new MyClass()
                    {
                        Corners = 4,
                        Name = "Square"
                    };

                    MyClass circle = new MyClass()
                    {
                        Corners = 0,
                        Name = "Circle"
                    };

                    SubClass sub = new SubClass()
                    {
                        Name = "SubClass",
                        Corners = 6,
                        Ratio = 3.43
                    };

                    collection.Save(square);
                    collection.Save(circle);
                    collection.Save(sub);

                    var superclass = (from item in db.GetCollection<MyClass>("MyClass").Linq()
                                where item.Corners > 1
                                select item.Corners).ToList();

                    var subclass = (from item in db.GetCollection<SubClass>("MyClass").Linq()
                                    where item.Ratio > 1
                                    select item.Corners).ToList();

                    Console.WriteLine("Count by LINQ on typed collection: {0}", collection.Linq().Count(x => x.Corners > 1));
                    Console.WriteLine("Count by LINQ on typed collection2: {0}", db.GetCollection<SubClass>().Linq().Count(x => x.Corners > 1));
                    //Console.WriteLine("Count by LINQ on typed collection3: {0}", db.GetCollection<SubClass>().Count(new { Corners = Op.GreaterThan(1) }));
                    Console.WriteLine("Count on typed collection: {0}", collection.Count(new { Corners = Op.GreaterThan(1) }));

                    var coll = db.GetCollection("MyClass");
                    var count = coll.Count(new Document("Corners", Op.GreaterThan(1)));
                    Console.WriteLine("Count: {0}", count);
                    Console.ReadKey();
                }
                finally
                {
                    mongo.Disconnect();
                }
            }

            //var main = new MainClass();
            //main.Setup();
            //main.Run();
        }
Example #21
0
        /// <summary>
        /// 按日期分页显示日志
        /// </summary>
        /// <param name="date"></param>
        /// <param name="pageSize"></param>
        /// <param name="pageNum"></param>
        /// <returns></returns>
        public static ResultSet ShowLogs(string date, int pageSize, int pageNum)
        {
            long resultCount = 0;

            IList docResultSet = new List<USTALogs>();

            Mongo mongoDBLog = null;

            try
            {
                mongoDBLog = new Mongo(ConfigurationManager.AppSettings["mongoDBConfig"]);
                mongoDBLog.Connect();

                var dbLog = mongoDBLog.GetDatabase("USTALogs");

                var collection = dbLog.GetCollection<USTALogs>(date);
                resultCount = collection.Count();

                var queryResultSet = from p in (collection.Linq().Skip(pageSize * (pageNum - 1)).Take(pageSize))
                                     select p;

                docResultSet = queryResultSet.ToList<USTALogs>();

            }
            catch (Exception mongoDBLogException)
            {
                string mongoDBInfoError = HttpContext.Current.Server.MapPath("/LogFiles/GetMongoDBInfoError_" + DateTime.Now.Date.ToString("yyyy-MM-dd"));

                if (!System.IO.File.Exists(mongoDBInfoError))
                {
                    System.IO.File.Create(mongoDBInfoError);
                }
            }
            finally
            {
                if (mongoDBLog != null)
                {
                    mongoDBLog.Disconnect();
                    mongoDBLog.Dispose();
                }
            }

            return new ResultSet { resultCount = resultCount, result = docResultSet };
        }
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            Mongo mongo = new Mongo();
            try
            {
                string room = "chats";
                if (context.Request.QueryString["room"] != null && context.Request.QueryString["room"].Length > 0)
                    room = context.Request.QueryString["room"].ToString();
                string action = "list";
                if (context.Request.QueryString["action"] != null && context.Request.QueryString["action"].Length > 0)
                    action = context.Request.QueryString["action"].ToString();
                string msg = "";
                if (context.Request.QueryString["msg"] != null && context.Request.QueryString["msg"].Length > 0)
                    msg = context.Request.QueryString["msg"].ToString();
                string from = "";
                if (context.Request.QueryString["from"] != null && context.Request.QueryString["from"].Length > 0)
                    from = context.Request.QueryString["from"].ToString();
                mongo.Connect();

                var db = mongo.GetDatabase("chatDB").GetCollection<message>(room);
                switch (action)
                {
                    case "rooms":
                        foreach (var r in mongo.GetDatabase("chatDB").GetCollectionNames())
                        {
                             string r2 = r.Replace("chatDB.", "");
                            if (r.Contains("system.indexes") ||r.Contains(".$_id_"))
                            {
                                continue;
                            }
                           context.Response.Write(" <a href=\"?room=" + r2 + "&action=list\" target=\"_blank\">" + r2 + "</a><br/> ");
                        }
                        break;
                    case "list":
                        var col = db.Linq().OrderByDescending(doc => doc._id);
                        if (col.Count() > 0)
                            context.Response.Write("<br/><a href=\"?action=clear&room=" + room + "\" target=\"_blank\">删除全部</a><br/><br/> ");
                        else
                            context.Response.Write("无数据");

                        foreach (var item in col)
                        {
                            context.Response.Write(item.addtime + " [" + item.from + "] 说: " + item.msg + " <a id=\""+item._id+"\" href=\"?room=" + room + "&action=remove&msg=" + item.msg + "&from=" + item.from + "\" target=\"_blank\">删除</a><br/> ");
                        }

                        break;
                    case "remove":
                        if (from.Length > 0 && msg.Length > 0)
                        {
                            db.Remove(new Document { { "from", from }, { "msg", msg } });

                        }
                        else if (from.Length > 0)
                        {
                            db.Remove(new Document { { "from", from } });

                        }
                        else if (msg.Length > 0)
                        {
                            db.Remove(new Document { { "msg", msg } });
                        }
                        break;
                    case "clear":
                        db.Remove(new Document { });
                        break;
                    case "dropdatabase":
                        mongo.GetDatabase("chatDB").SendCommand("dropDatabase");
                        break;
                    default:
                        break;
                }

            }
            catch (Exception)
            {

                throw;
            }
            finally
            {

                mongo.Disconnect();
            }
        }
        private int ExportToMongo(IEnumerable<ProductSales> sales)
        {
            List<MongoDB.Document> documentsToExport = new List<MongoDB.Document>();

            foreach (var entry in sales)
            {
                var doc = CreateDocument(entry);
                documentsToExport.Add(doc);
            }

            var mongo = new Mongo();
            mongo.Connect();
            var db = mongo.GetDatabase("supermarkets");

            var collection = db.GetCollection("SalesByProductReports");
            collection.Insert(documentsToExport);

            mongo.Disconnect();

            var jsonCreator = new JsonCreator();
            jsonCreator.WriteJsonFiles(documentsToExport, directoryPath);

            return documentsToExport.Count();
        }