예제 #1
0
        public void CheckCollection(string collectionName, long collectionSize, long?collectionMaxItems, bool createIdField)
        {
            var db = _server.GetDatabase(_database);

            lock (CollectionCache)
            {
                if (CollectionCache.Contains(collectionName))
                {
                    return;
                }

                if (!db.CollectionExists(collectionName))
                {
                    var collectionOptionsBuilder = new CollectionOptionsBuilder();

                    collectionOptionsBuilder.SetCapped(true);
                    collectionOptionsBuilder.SetMaxSize(collectionSize);

                    if (createIdField)
                    {
                        collectionOptionsBuilder.SetAutoIndexId(true);
                    }

                    if (collectionMaxItems.HasValue)
                    {
                        collectionOptionsBuilder.SetMaxDocuments(collectionMaxItems.Value);
                    }

                    db.CreateCollection(collectionName, collectionOptionsBuilder);
                }

                CollectionCache.Add(collectionName);
            }
        }
예제 #2
0
        public void CheckCollection(string collectionName, long collectionSize, long? collectionMaxItems, bool createIdField)
        {
            var db = _server.GetDatabase(_database);

            lock (_collectionCache)
            {
                if (_collectionCache.ContainsKey(collectionName)) return;

                if (!db.CollectionExists(collectionName))
                {
                    var collectionOptionsBuilder = new CollectionOptionsBuilder();

                    collectionOptionsBuilder.SetCapped(true);
                    collectionOptionsBuilder.SetMaxSize(collectionSize);
                    collectionOptionsBuilder.SetAutoIndexId(createIdField);

                    if (collectionMaxItems.HasValue)
                        collectionOptionsBuilder.SetMaxDocuments(collectionMaxItems.Value);

                    db.CreateCollection(collectionName, collectionOptionsBuilder);

                }

                _collectionCache.Add(collectionName, createIdField);
            }
        }
예제 #3
0
 /// <summary>
 /// OK
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cmdOK_Click(object sender, EventArgs e)
 {
     if (txtCollectionName.Text != String.Empty)
     {
         try
         {
             String ErrMessage;
             SystemManager.GetCurrentDataBase().IsCollectionNameValid(txtCollectionName.Text, out ErrMessage);
             if (ErrMessage != null)
             {
                 MyMessageBox.ShowMessage("Create MongoDatabase", "Argument Exception", ErrMessage, true);
                 return;
             }
             if (chkAdvance.Checked)
             {
                 CollectionOptionsBuilder option = new CollectionOptionsBuilder();
                 option.SetCapped(chkIsCapped.Checked);
                 option.SetMaxSize((long)numMaxSize.Value);
                 option.SetMaxDocuments((long)numMaxDocument.Value);
                 option.SetAutoIndexId(chkIsAutoIndexId.Checked);
                 Result = MongoDBHelper.CreateCollectionWithOptions(strSvrPathWithTag, treeNode, txtCollectionName.Text, option);
             }
             else
             {
                 Result = MongoDBHelper.CreateCollection(strSvrPathWithTag, treeNode, txtCollectionName.Text);
             }
             this.Close();
         }
         catch (ArgumentException ex)
         {
             MyMessageBox.ShowMessage("Create MongoDatabase", "Argument Exception", ex.Message, true);
             Result = false;
         }
     }
 }
예제 #4
0
 /// <summary>
 ///     OK
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cmdOK_Click(object sender, EventArgs e)
 {
     //不支持中文 JIRA ticket is created : SERVER-4412
     //SERVER-4412已经在2013/03解决了
     //collection names are limited to 121 bytes after converting to UTF-8.
     if (txtCollectionName.Text == string.Empty)
     {
         return;
     }
     try
     {
         string errMessage;
         RuntimeMongoDbContext.GetCurrentDataBase().IsCollectionNameValid(txtCollectionName.Text, out errMessage);
         if (errMessage != null)
         {
             MyMessageBox.ShowMessage("Create MongoDatabase", "Argument Exception", errMessage, true);
             return;
         }
         if (chkAdvance.Checked)
         {
             var option = new CollectionOptionsBuilder();
             option.SetCapped(chkIsCapped.Checked);
             option.SetMaxSize((long)numMaxSize.Value);
             option.SetMaxDocuments((long)numMaxDocument.Value);
             //CappedCollection Default is AutoIndexId After MongoDB 2.2.2
             option.SetAutoIndexId(chkIsAutoIndexId.Checked);
             Result = Operater.CreateCollectionWithOptions(StrSvrPathWithTag, txtCollectionName.Text,
                                                           option, RuntimeMongoDbContext.GetCurrentDataBase());
         }
         else
         {
             Result = Operater.CreateCollection(StrSvrPathWithTag, txtCollectionName.Text,
                                                RuntimeMongoDbContext.GetCurrentDataBase());
         }
         Close();
     }
     catch (ArgumentException ex)
     {
         Utility.ExceptionDeal(ex, "Create MongoDatabase", "Argument Exception");
         Result = false;
     }
 }
예제 #5
0
        protected override void BeginProcessing()
        {
            // default options
            var options = new CollectionOptionsBuilder();

            // capped collection
            if (MaxSize > 0)
            {
                options.SetCapped(true);
                options.SetMaxSize(MaxSize);
                if (MaxDocuments > 0)
                {
                    options.SetMaxDocuments(MaxDocuments);
                }
            }

            // auto arrayIndex explicitly, otherwise default is used
            if (_setAutoIndexId)
            {
                options.SetAutoIndexId(_AutoIndexId);
            }

            Database.CreateCollection(Name, options);
        }
예제 #6
0
        /// <summary>
        ///     OK
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdOK_Click(object sender, EventArgs e)
        {
            //不支持中文 JIRA ticket is created : SERVER-4412
            //SERVER-4412已经在2013/03解决了
            //collection names are limited to 121 bytes after converting to UTF-8.
            if (txtCollectionName.Text == string.Empty)
            {
                return;
            }
            CollectionName = txtCollectionName.Text.Trim();
            try
            {
                string errMessage;
                RuntimeMongoDbContext.GetCurrentDataBase().IsCollectionNameValid(txtCollectionName.Text, out errMessage);
                if (errMessage != null)
                {
                    MyMessageBox.ShowMessage("Create Collection", "Argument Exception", errMessage, true);
                    return;
                }
                if (chkAdvance.Checked)
                {
                    var option = new CollectionOptionsBuilder();

                    if (chkIsCapped.Checked)
                    {
                        if (numMaxSize.Value == 0 || numMaxDocument.Value == 0)
                        {
                            MyMessageBox.ShowMessage("Create Collection", "Argument Exception", "Please Input MaxSize Or MaxDocument When IsCapped", true);
                            return;
                        }
                        option.SetCapped(chkIsCapped.Checked);
                        if (numMaxSize.Value != 0)
                        {
                            option.SetMaxSize((long)numMaxSize.Value);
                        }
                        if (numMaxDocument.Value != 0)
                        {
                            option.SetMaxDocuments((long)numMaxDocument.Value);
                        }
                    }

                    //CappedCollection Default is AutoIndexId After MongoDB 2.2.2
                    option.SetAutoIndexId(chkIsAutoIndexId.Checked);

                    if (chkValidation.Checked)
                    {
                        //Start From MongoDB 3.2.0
                        BsonDocument  query    = BsonSerializer.Deserialize <BsonDocument>(txtValidation.Text);
                        QueryDocument queryDoc = new QueryDocument(query);
                        option.SetValidator(queryDoc);
                        //Validation Level
                        if (radLevel_off.Checked)
                        {
                            option.SetValidationLevel(DocumentValidationLevel.Off);
                        }
                        if (radLevel_strict.Checked)
                        {
                            option.SetValidationLevel(DocumentValidationLevel.Strict);
                        }
                        if (radLevel_moderate.Checked)
                        {
                            option.SetValidationLevel(DocumentValidationLevel.Moderate);
                        }
                        //Validation Action
                        if (radAction_error.Checked)
                        {
                            option.SetValidationAction(DocumentValidationAction.Error);
                        }
                        if (radAction_warn.Checked)
                        {
                            option.SetValidationAction(DocumentValidationAction.Warn);
                        }
                    }

                    Result = Operater.CreateCollectionWithOptions(StrSvrPathWithTag, txtCollectionName.Text,
                                                                  option, RuntimeMongoDbContext.GetCurrentDataBase());
                }
                else
                {
                    Result = Operater.CreateCollection(StrSvrPathWithTag, txtCollectionName.Text,
                                                       RuntimeMongoDbContext.GetCurrentDataBase());
                }
                Close();
            }
            catch (ArgumentException ex)
            {
                Utility.ExceptionDeal(ex, "Create MongoDatabase", "Argument Exception");
                Result = false;
            }
        }