Пример #1
0
        //从权限上看,clusterAdmin是必须的
        //但是能够建立数据库,不表示能够看到里面的内容!
        //dbAdmin可以访问数据库。
        //clusterAdmin能创建数据库但是不能访问数据库。


        /// <summary>
        ///     数据库操作
        /// </summary>
        /// <param name="strObjTag"></param>
        /// <param name="dbName"></param>
        /// <param name="func"></param>
        /// <returns></returns>
        public static string DataBaseOpration(string strObjTag, string dbName, Oprcode func)
        {
            var mongoSvr  = RuntimeMongoDbContext.GetCurrentServer();
            var rtnResult = string.Empty;

            TagInfo.GetTagPath(strObjTag);
            if (mongoSvr == null)
            {
                return(rtnResult);
            }
            var db = mongoSvr.GetDatabase(dbName);

            switch (func)
            {
            case Oprcode.Drop:
                if (mongoSvr.DatabaseExists(dbName))
                {
                    var result = mongoSvr.DropDatabase(dbName);
                    return(!result.Response.Contains("err") ? string.Empty : result.Response["err"].ToString());
                }
                break;

            case Oprcode.Repair:
                //其实Repair的入口不在这个方法里面
                CommandHelper.ExecuteMongoDBCommand(CommandHelper.RepairDatabaseCommand,
                                                    mongoSvr.GetDatabase(dbName));
                break;
            }
            return(rtnResult);
        }
Пример #2
0
        /// <summary>
        ///     数据库操作
        /// </summary>
        /// <param name="strObjTag"></param>
        /// <param name="dbName"></param>
        /// <param name="func"></param>
        /// <returns></returns>
        public static string DataBaseOpration(string strObjTag, string dbName, Oprcode func)
        {
            var mongoSvr  = RuntimeMongoDbContext.GetCurrentServer();
            var rtnResult = string.Empty;
            var tag       = TagInfo.GetTagPath(strObjTag);

            if (mongoSvr == null)
            {
                return(rtnResult);
            }
            switch (func)
            {
            case Oprcode.Create:
                if (!mongoSvr.DatabaseExists(dbName))
                {
                    //从权限上看,clusterAdmin是必须的
                    //但是能够建立数据库,不表示能够看到里面的内容!
                    //dbAdmin可以访问数据库。
                    //clusterAdmin能创建数据库但是不能访问数据库。
                    try
                    {
                        //Driver 2.0.1
                        //如果没有后续对于db的操作,则数据库无法新建
                        var db = mongoSvr.GetDatabase(dbName);
                        db.CreateCollection("demo");
                    }
                    catch (Exception ex)
                    {
                        //如果使用没有dbAdmin权限的clusterAdmin。。。。
                        Utility.ExceptionDeal(ex);
                    }
                }
                break;

            case Oprcode.Drop:
                if (mongoSvr.DatabaseExists(dbName))
                {
                    var result = mongoSvr.DropDatabase(dbName);
                    return(!result.Response.Contains("err") ? string.Empty : result.Response["err"].ToString());
                }
                break;

            case Oprcode.Repair:
                //其实Repair的入口不在这个方法里面
                CommandHelper.ExecuteMongoDBCommand(CommandHelper.RepairDatabaseCommand,
                                                    mongoSvr.GetDatabase(dbName));
                break;
            }
            return(rtnResult);
        }