Exemplo n.º 1
0
 private bool IndexExists(GetIndexesResult indexes,string name)
 {
     foreach (var index in indexes)
     {
         if (index.Name == name)
             return true;
     }
     return false;
 }
Exemplo n.º 2
0
        /// <summary>
        /// 分片配置(数据集)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdEnableCollectionSharding_Click(object sender, EventArgs e)
        {
            List <CommandResult> Resultlst = new List <CommandResult>();
            GetIndexesResult     Result    = _prmSvr.GetDatabase(cmbDataBase.Text).GetCollection(cmbCollection.Text).GetIndexes();
            BsonDocument         IndexDoc  = Result[cmbIndexList.SelectedIndex].Key;

            Resultlst.Add(MongoDBHelper.ShardCollection(_prmSvr, cmbDataBase.Text + "." + cmbCollection.Text, IndexDoc));
            MyMessageBox.ShowMessage("EnableSharding", "Result", MongoDBHelper.ConvertCommandResultlstToString(Resultlst));
        }
Exemplo n.º 3
0
        /// <inheritdoc />
        public async Task <List <IndexInfo> > GetIndexesAsync(CancellationToken cancellationToken = default)
        {
            GetIndexesResult response = await NewRequest()
                                        .AppendPathSegment("_index")
                                        .GetJsonAsync <GetIndexesResult>(cancellationToken)
                                        .SendRequestAsync()
                                        .ConfigureAwait(false);

            return(response.Indexes);
        }
Exemplo n.º 4
0
        public static int GetMongoIndexCount(string collectionName, string databaseName)
        {
            int result = 0;

            YellowstonePathology.Business.Mongo.Server server = new Business.Mongo.TestServer(databaseName);
            MongoCollection  mongoCollection  = server.Database.GetCollection <BsonDocument>(collectionName);
            GetIndexesResult getIndexesResult = mongoCollection.GetIndexes();

            result = getIndexesResult.Count;
            return(result);
        }
Exemplo n.º 5
0
        void AssertIndexIsCorrect(GetIndexesResult indexes, string propertyToIndex)
        {
            var indexInfo = indexes.Single(i => IsIndexForProperty(propertyToIndex, i));

            if (!indexInfo.IsUnique)
            {
                throw new InvalidOperationException(string.Format("The index for {0} already existed, but it wasn't enforcing a UNIQUE constraint.", propertyToIndex));
            }

            if (indexInfo.IsBackground)
            {
                throw new InvalidOperationException(string.Format("The index for {0} aready exists, but it wasn't SYNCHRONOUS.", propertyToIndex));
            }
        }
Exemplo n.º 6
0
        private IEnumerable <IndexInfo> GetExistsIndexes()
        {
            GetIndexesResult res = _coll.GetIndexes();

            foreach (MongoDB.Driver.IndexInfo ind in res)
            {
                var         ii  = new IndexInfo();
                BsonElement key = ind.Key.Single();
                ii.Name  = ind.Name;
                ii.Field = key.Name;
                ii.Order = sbyte.Parse(key.Value.ToString());
                yield return(ii);
            }
        }
Exemplo n.º 7
0
        protected void btnGetIndex_Click(object sender, EventArgs e)
        {
            BsonDocument docFind = new BsonDocument();

            MongoDB.Driver.MongoServer server = MongoDB.Driver.MongoServer.Create(ConfigurationManager.AppSettings["mongoDBConfig"]);
            server.Connect();
            //获取指定数据库
            MongoDB.Driver.MongoDatabase db = server.GetDatabase(ConfigurationManager.AppSettings["mongoDBName"].ToString());
            string collection = txtCollection.Text.Trim();

            //获取表
            MongoDB.Driver.MongoCollection <BsonDocument> col = db.GetCollection <BsonDocument>(collection);
            GetIndexesResult indexsResult = col.GetIndexes();
            string           strIndexs    = string.Empty;

            for (int i = 0; i < indexsResult.Count; i++)
            {
                strIndexs += indexsResult[i].Key.ToString() + ";";
            }
            txtGetIndexs.Text = strIndexs;
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="strShowColName"></param>
        /// <param name="mongoDB"></param>
        /// <param name="mongoConnSvrKey"></param>
        /// <returns></returns>
        private static TreeNode FillCollectionInfoToTreeNode(String strColName, MongoDatabase mongoDB, String mongoConnSvrKey)
        {
            String strShowColName = strColName;

            if (!SystemManager.IsUseDefaultLanguage)
            {
                switch (strShowColName)
                {
                case "chunks":
                    if (mongoDB.Name == "config")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_chunks) + "(" + strShowColName + ")";
                    }
                    break;

                case "collections":
                    if (mongoDB.Name == "config")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_collections) + "(" + strShowColName + ")";
                    }
                    break;

                case "changelog":
                    if (mongoDB.Name == "config")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_changelog) + "(" + strShowColName + ")";
                    }
                    break;

                case "databases":
                    if (mongoDB.Name == "config")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_databases) + "(" + strShowColName + ")";
                    }
                    break;

                case "lockpings":
                    if (mongoDB.Name == "config")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_lockpings) + "(" + strShowColName + ")";
                    }
                    break;

                case "locks":
                    if (mongoDB.Name == "config")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_locks) + "(" + strShowColName + ")";
                    }
                    break;

                case "mongos":
                    if (mongoDB.Name == "config")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_mongos) + "(" + strShowColName + ")";
                    }
                    break;

                case "settings":
                    if (mongoDB.Name == "config")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_settings) + "(" + strShowColName + ")";
                    }
                    break;

                case "shards":
                    if (mongoDB.Name == "config")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_shards) + "(" + strShowColName + ")";
                    }
                    break;

                case "tags":
                    //ADD: 2013/01/04 Mongo2.2.2开始支持ShardTag了
                    if (mongoDB.Name == "config")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_tags) + "(" + strShowColName + ")";
                    }
                    break;

                case "version":
                    if (mongoDB.Name == "config")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_version) + "(" + strShowColName + ")";
                    }
                    break;

                case "me":
                    if (mongoDB.Name == "local")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_me) + "(" + strShowColName + ")";
                    }
                    break;

                case "sources":
                    if (mongoDB.Name == "local")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_sources) + "(" + strShowColName + ")";
                    }
                    break;

                case "slaves":
                    if (mongoDB.Name == "local")
                    {
                        strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.SYSTEMC_COLNAME_slaves) + "(" + strShowColName + ")";
                    }
                    break;

                case COLLECTION_NAME_GFS_CHUNKS:
                    strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.COLLECTION_NAME_GFS_CHUNKS) + "(" + strShowColName + ")";
                    break;

                case COLLECTION_NAME_GFS_FILES:
                    strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.COLLECTION_NAME_GFS_FILES) + "(" + strShowColName + ")";
                    break;

                case COLLECTION_NAME_OPERATION_LOG:
                    strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.COLLECTION_NAME_OPERATION_LOG) + "(" + strShowColName + ")";
                    break;

                case COLLECTION_NAME_SYSTEM_INDEXES:
                    strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.COLLECTION_NAME_SYSTEM_INDEXES) + "(" + strShowColName + ")";
                    break;

                case COLLECTION_NAME_JAVASCRIPT:
                    strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.COLLECTION_NAME_JAVASCRIPT) + "(" + strShowColName + ")";
                    break;

                case COLLECTION_NAME_SYSTEM_REPLSET:
                    strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.COLLECTION_NAME_SYSTEM_REPLSET) + "(" + strShowColName + ")";
                    break;

                case COLLECTION_NAME_REPLSET_MINVALID:
                    strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.COLLECTION_NAME_REPLSET_MINVALID) + "(" + strShowColName + ")";
                    break;

                case COLLECTION_NAME_USER:
                    strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.COLLECTION_NAME_USER) + "(" + strShowColName + ")";
                    break;

                case COLLECTION_NAME_SYSTEM_PROFILE:
                    strShowColName = SystemManager.mStringResource.GetText(StringResource.TextType.COLLECTION_NAME_SYSTEM_PROFILE) + "(" + strShowColName + ")";
                    break;

                default:
                    break;
                }
            }
            TreeNode mongoColNode;

            mongoColNode = new TreeNode(strShowColName);
            switch (strColName)
            {
            case COLLECTION_NAME_GFS_FILES:
                mongoColNode.Tag = GRID_FILE_SYSTEM_TAG + ":" + mongoConnSvrKey + "/" + mongoDB.Name + "/" + strColName;
                break;

            case COLLECTION_NAME_USER:
                mongoColNode.Tag = USER_LIST_TAG + ":" + mongoConnSvrKey + "/" + mongoDB.Name + "/" + strColName;
                break;

            default:
                mongoColNode.Tag = COLLECTION_TAG + ":" + mongoConnSvrKey + "/" + mongoDB.Name + "/" + strColName;
                break;
            }

            MongoCollection mongoCol = mongoDB.GetCollection(strColName);

            //Start ListIndex
            TreeNode         mongoIndexes = new TreeNode("Indexes");
            GetIndexesResult indexList    = mongoCol.GetIndexes();

            foreach (IndexInfo indexDoc in indexList.ToList <IndexInfo>())
            {
                TreeNode mongoIndex = new TreeNode();
                if (!SystemManager.IsUseDefaultLanguage)
                {
                    mongoIndex.Text = (SystemManager.mStringResource.GetText(StringResource.TextType.Index_Name) + ":" + indexDoc.Name);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_Keys) + ":" +
                                         GetKeyString(indexDoc.Key), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_RepeatDel) + ":" + indexDoc.DroppedDups.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_Background) + ":" + indexDoc.IsBackground.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_Sparse) + ":" + indexDoc.IsSparse.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_Unify) + ":" + indexDoc.IsUnique.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_NameSpace) + ":" + indexDoc.Namespace.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_Version) + ":" + indexDoc.Version.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    if (indexDoc.TimeToLive == TimeSpan.MaxValue)
                    {
                        mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_ExpireData) + ":Not Set", (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    }
                    else
                    {
                        mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_ExpireData) + ":" + indexDoc.TimeToLive.TotalSeconds.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    }
                }
                else
                {
                    mongoIndex.Text = "IndexName:" + indexDoc.Name;
                    mongoIndex.Nodes.Add(String.Empty, "Keys:" + GetKeyString(indexDoc.Key), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "DroppedDups :" + indexDoc.DroppedDups.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "IsBackground:" + indexDoc.IsBackground.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "IsSparse:" + indexDoc.IsSparse.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "IsUnique:" + indexDoc.IsUnique.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "NameSpace:" + indexDoc.Namespace.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "Version:" + indexDoc.Version.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    if (indexDoc.TimeToLive == TimeSpan.MaxValue)
                    {
                        mongoIndex.Nodes.Add(String.Empty, "Expire Data:Not Set", (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    }
                    else
                    {
                        mongoIndex.Nodes.Add(String.Empty, "Expire Data(sec):" + indexDoc.TimeToLive.TotalSeconds.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    }
                }
                if (indexDoc.RawDocument.Contains("default_language"))
                {
                    //TextIndex
                    mongoIndex.Nodes.Add(String.Empty, "weights:" + indexDoc.RawDocument["weights"], (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "default_language:" + indexDoc.RawDocument["default_language"], (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "language_override:" + indexDoc.RawDocument["language_override"], (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "textIndexVersion:" + indexDoc.RawDocument["textIndexVersion"], (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                }
                mongoIndex.ImageIndex         = (int)GetSystemIcon.MainTreeImageType.DBKey;
                mongoIndex.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.DBKey;
                mongoIndex.Tag = INDEX_TAG + ":" + mongoConnSvrKey + "/" + mongoDB.Name + "/" + strColName + "/" + indexDoc.Name;
                mongoIndexes.Nodes.Add(mongoIndex);
            }
            mongoIndexes.ImageIndex         = (int)GetSystemIcon.MainTreeImageType.Keys;
            mongoIndexes.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.Keys;
            mongoIndexes.Tag = INDEXES_TAG + ":" + mongoConnSvrKey + "/" + mongoDB.Name + "/" + strColName;
            mongoColNode.Nodes.Add(mongoIndexes);
            //End ListIndex

            mongoColNode.ToolTipText  = strColName + System.Environment.NewLine;
            mongoColNode.ToolTipText += "IsCapped:" + mongoCol.GetStats().IsCapped.ToString();

            if (strColName == COLLECTION_NAME_USER)
            {
                mongoColNode.ImageIndex         = (int)GetSystemIcon.MainTreeImageType.UserIcon;
                mongoColNode.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.UserIcon;
            }
            else
            {
                mongoColNode.ImageIndex         = (int)GetSystemIcon.MainTreeImageType.Collection;
                mongoColNode.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.Collection;
            }
            //End Data
            return(mongoColNode);
        }
Exemplo n.º 9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="strShowColName"></param>
        /// <param name="mongoDB"></param>
        /// <param name="mongoConnSvrKey"></param>
        /// <returns></returns>
        private static TreeNode FillCollectionInfoToTreeNode(String strColName, MongoDatabase mongoDB, String mongoConnSvrKey)
        {
            String strShowColName = strColName;

            if (!SystemManager.IsUseDefaultLanguage)
            {
                if (SystemManager.mStringResource.LanguageType == "Chinese")
                {
                    switch (strShowColName)
                    {
                    case "chunks":
                        if (mongoDB.Name == "config")
                        {
                            strShowColName = "数据块(" + strShowColName + ")";
                        }
                        break;

                    case "collections":
                        if (mongoDB.Name == "config")
                        {
                            strShowColName = "数据集(" + strShowColName + ")";
                        }
                        break;

                    case "changelog":
                        if (mongoDB.Name == "config")
                        {
                            strShowColName = "变更日志(" + strShowColName + ")";
                        }
                        break;

                    case "databases":
                        if (mongoDB.Name == "config")
                        {
                            strShowColName = "数据库(" + strShowColName + ")";
                        }
                        break;

                    case "lockpings":
                        if (mongoDB.Name == "config")
                        {
                            strShowColName = "数据锁(" + strShowColName + ")";
                        }
                        break;

                    case "locks":
                        if (mongoDB.Name == "config")
                        {
                            strShowColName = "数据锁(" + strShowColName + ")";
                        }
                        break;

                    case "mongos":
                        if (mongoDB.Name == "config")
                        {
                            strShowColName = "路由服务器(" + strShowColName + ")";
                        }
                        break;

                    case "settings":
                        if (mongoDB.Name == "config")
                        {
                            strShowColName = "配置(" + strShowColName + ")";
                        }
                        break;

                    case "shards":
                        if (mongoDB.Name == "config")
                        {
                            strShowColName = "分片(" + strShowColName + ")";
                        }
                        break;

                    case "version":
                        if (mongoDB.Name == "config")
                        {
                            strShowColName = "版本(" + strShowColName + ")";
                        }
                        break;

                    case "me":
                        if (mongoDB.Name == "local")
                        {
                            strShowColName = "副本组[从属机信息](" + strShowColName + ")";
                        }
                        break;

                    case "sources":
                        if (mongoDB.Name == "local")
                        {
                            strShowColName = "主机地址(" + strShowColName + ")";
                        }
                        break;

                    case "slaves":
                        if (mongoDB.Name == "local")
                        {
                            strShowColName = "副本组[主机信息](" + strShowColName + ")";
                        }
                        break;

                    case COLLECTION_NAME_GFS_CHUNKS:
                        strShowColName = "数据块(" + strShowColName + ")";
                        break;

                    case COLLECTION_NAME_GFS_FILES:
                        strShowColName = "文件系统(" + strShowColName + ")";
                        break;

                    case COLLECTION_NAME_OPERATION_LOG:
                        strShowColName = "操作结果(" + strShowColName + ")";
                        break;

                    case COLLECTION_NAME_SYSTEM_INDEXES:
                        strShowColName = "索引(" + strShowColName + ")";
                        break;

                    case COLLECTION_NAME_JAVASCRIPT:
                        strShowColName = "存储Javascript(" + strShowColName + ")";
                        break;

                    case COLLECTION_NAME_SYSTEM_REPLSET:
                        strShowColName = "副本组(" + strShowColName + ")";
                        break;

                    case COLLECTION_NAME_REPLSET_MINVALID:
                        strShowColName = "初始化同步(" + strShowColName + ")";
                        break;

                    case COLLECTION_NAME_USER:
                        strShowColName = "用户列表(" + strShowColName + ")";
                        break;

                    case COLLECTION_NAME_SYSTEM_PROFILE:
                        strShowColName = "日志(" + strShowColName + ")";
                        break;

                    default:
                        break;
                    }
                }
            }
            TreeNode mongoColNode;

            mongoColNode = new TreeNode(strShowColName);
            switch (strColName)
            {
            case COLLECTION_NAME_GFS_FILES:
                mongoColNode.Tag = GRID_FILE_SYSTEM_TAG + ":" + mongoConnSvrKey + "/" + mongoDB.Name + "/" + strColName;
                break;

            case COLLECTION_NAME_USER:
                mongoColNode.Tag = USER_LIST_TAG + ":" + mongoConnSvrKey + "/" + mongoDB.Name + "/" + strColName;
                break;

            default:
                mongoColNode.Tag = COLLECTION_TAG + ":" + mongoConnSvrKey + "/" + mongoDB.Name + "/" + strColName;
                break;
            }

            MongoCollection mongoCol = mongoDB.GetCollection(strColName);

            //Start ListIndex
            TreeNode         mongoIndexes = new TreeNode("Indexes");
            GetIndexesResult indexList    = mongoCol.GetIndexes();

            foreach (IndexInfo indexDoc in indexList.ToList <IndexInfo>())
            {
                TreeNode mongoIndex = new TreeNode();
                if (!SystemManager.IsUseDefaultLanguage)
                {
                    mongoIndex.Text = (SystemManager.mStringResource.GetText(StringResource.TextType.Index_Name) + ":" + indexDoc.Name);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_Keys) + ":" + indexDoc.Key.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_RepeatDel) + ":" + indexDoc.DroppedDups.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_Background) + ":" + indexDoc.IsBackground.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_Sparse) + ":" + indexDoc.IsSparse.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_Unify) + ":" + indexDoc.IsUnique.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_NameSpace) + ":" + indexDoc.Namespace.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, SystemManager.mStringResource.GetText(StringResource.TextType.Index_Version) + ":" + indexDoc.Version.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                }
                else
                {
                    mongoIndex.Text = "IndexName:" + indexDoc.Name;
                    mongoIndex.Nodes.Add(String.Empty, "Keys:" + indexDoc.Key.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "DroppedDups :" + indexDoc.DroppedDups.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "IsBackground:" + indexDoc.IsBackground.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "IsSparse:" + indexDoc.IsSparse.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "IsUnique:" + indexDoc.IsUnique.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "NameSpace:" + indexDoc.Namespace.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                    mongoIndex.Nodes.Add(String.Empty, "Version:" + indexDoc.Version.ToString(), (int)GetSystemIcon.MainTreeImageType.KeyInfo, (int)GetSystemIcon.MainTreeImageType.KeyInfo);
                }
                mongoIndex.ImageIndex         = (int)GetSystemIcon.MainTreeImageType.DBKey;
                mongoIndex.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.DBKey;
                mongoIndex.Tag = INDEX_TAG + ":" + mongoConnSvrKey + "/" + mongoDB.Name + "/" + strColName + "/" + indexDoc.Name;
                mongoIndexes.Nodes.Add(mongoIndex);
            }
            mongoIndexes.ImageIndex         = (int)GetSystemIcon.MainTreeImageType.Keys;
            mongoIndexes.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.Keys;
            mongoIndexes.Tag = INDEXES_TAG + ":" + mongoConnSvrKey + "/" + mongoDB.Name + "/" + strColName;
            mongoColNode.Nodes.Add(mongoIndexes);
            //End ListIndex

            mongoColNode.ToolTipText  = strColName + System.Environment.NewLine;
            mongoColNode.ToolTipText += "IsCapped:" + mongoCol.GetStats().IsCapped.ToString();

            if (strColName == COLLECTION_NAME_USER)
            {
                mongoColNode.ImageIndex         = (int)GetSystemIcon.MainTreeImageType.UserIcon;
                mongoColNode.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.UserIcon;
            }
            else
            {
                mongoColNode.ImageIndex         = (int)GetSystemIcon.MainTreeImageType.Collection;
                mongoColNode.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.Collection;
            }
            //End Data
            return(mongoColNode);
        }