/// <summary>
        ///     OK
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOK_Click(object sender, EventArgs e)
        {
            //Project
            var project = QueryFieldPicker.GetAggregation();

            if (project[0].AsBsonDocument.ElementCount > 0)
            {
                Aggregation.Add(project);
            }
            //match
            var match = MatchListPanel.GetMatchDocument();

            if (match != null)
            {
                Aggregation.Add(match);
            }
            //Skip
            if (chkSkip.Checked && int.Parse(txtSkip.Text) > 0)
            {
                Aggregation.Add(new BsonDocument("$skip", int.Parse(txtSkip.Text)));
            }
            //Limit
            if (chkLimit.Checked && int.Parse(txtLimit.Text) > 0)
            {
                Aggregation.Add(new BsonDocument("$limit", int.Parse(txtLimit.Text)));
            }
            //Group
            var groupDetail = GroupFieldPicker.GetGroupId();

            if (groupDetail.GetElement(0).Value.AsBsonDocument.ElementCount != 0)
            {
                foreach (var item in groupPanelCreator.GetGroup())
                {
                    groupDetail.Add(item);
                }
                var group = new BsonDocument("$group", groupDetail);
                Aggregation.Add(group);
            }
            Close();
        }
 /// <summary>
 ///     加载窗体
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void frmAggregationCondition_Load(object sender, EventArgs e)
 {
     QueryFieldPicker.InitByCurrentCollection(false);
     GroupFieldPicker.InitByCurrentCollection(false);
 }
Exemple #3
0
        /// <summary>
        ///     OK
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOK_Click(object sender, EventArgs e)
        {
            //Project
            var project = QueryFieldPicker.GetAggregation();

            if (project[0].AsBsonDocument.ElementCount > 0)
            {
                Aggregation.Add(project);
            }
            //match
            var match = MatchListPanel.GetMatchDocument();

            if (match != null)
            {
                Aggregation.Add(match);
            }
            //Group
            var groupDetail = GroupFieldPicker.GetGroupId();

            if (groupDetail.GetElement(0).Value.AsBsonDocument.ElementCount != 0)
            {
                foreach (var item in groupPanelCreator.GetGroup())
                {
                    groupDetail.Add(item);
                }
                var group = new BsonDocument("$group", groupDetail);
                Aggregation.Add(group);
            }


            //Skip
            if (chkSkip.Checked && int.Parse(txtSkip.Text) > 0)
            {
                Aggregation.Add(new BsonDocument("$skip", int.Parse(txtSkip.Text)));
            }
            //Limit
            if (chkLimit.Checked && int.Parse(txtLimit.Text) > 0)
            {
                Aggregation.Add(new BsonDocument("$limit", int.Parse(txtLimit.Text)));
            }
            //IndexStats
            if (chkIndexStats.Checked)
            {
                Aggregation.Add(new BsonDocument("$indexStats", new BsonDocument()));
            }
            //sortByCount
            if (chkSortByCount.Checked)
            {
                Aggregation.Add(new BsonDocument("$sortByCount", cmbSortByCount.Text));
            }
            //Sample
            if (chkSample.Checked)
            {
                var size = new BsonDocument("size", (int.Parse(txtSample.Text)));
                Aggregation.Add(new BsonDocument("$sample", size));
            }
            //unwind
            if (chkUnwind.Checked)
            {
                if (!chkPreserveNullAndEmptyArrays.Checked && string.IsNullOrEmpty(txtincludeArrayIndex.Text))
                {
                    Aggregation.Add(new BsonDocument("$unwind", cmbUnwind.Text));
                }
                else
                {
                    var UnwindDoc = new BsonDocument();
                    var field     = new BsonElement("path", cmbUnwind.Text);
                    UnwindDoc.Add(field);
                    if (chkPreserveNullAndEmptyArrays.Checked)
                    {
                        var preserveNullAndEmptyArrays = new BsonElement("preserveNullAndEmptyArrays", BsonBoolean.True);
                        UnwindDoc.Add(preserveNullAndEmptyArrays);
                    }
                    if (!string.IsNullOrEmpty(txtincludeArrayIndex.Text))
                    {
                        var includeArrayIndex = new BsonElement("includeArrayIndex", txtincludeArrayIndex.Text);
                        UnwindDoc.Add(includeArrayIndex);
                    }
                    Aggregation.Add(new BsonDocument("$unwind", UnwindDoc));
                }
            }
            Close();
        }