Skip to content

Commit 30aa1be

Browse files
committed
DOCSP-45382 - Comprehensive Coverage (#654)
(cherry picked from commit 7dfe216)
1 parent 0a8ab5b commit 30aa1be

File tree

170 files changed

+7095
-4069
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

170 files changed

+7095
-4069
lines changed

config/intersphinx.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Weirdly, giza wants a non-empty list of two or more, so we have to include extraneous/unused one --hence the python
1+
# Weirdly, giza wants a non-empty list of two or more, so we must include extraneous/unused one --hence the python
22
name: python
33
url: https://docs.python.org/2/
44
path: python2.inv

config/redirects

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,76 @@ raw: ${prefix}/master -> ${base}/upcoming/
2323
[*-v2.30]: ${prefix}/${version}/fundamentals/odata/ -> ${base}/${version}/
2424
[*-v2.30]: ${prefix}/${version}/fundamentals/crud/write-operations/bulk-write/ -> ${base}/${version}/fundamentals/crud/write-operations/
2525
[v2.22-v2.24]: ${prefix}/${version}/fundamentals/authentication/oidc/ -> ${base}/${version}/fundamentals/authentication/
26+
27+
# comprehensive coverage reorg
28+
[*-master]: ${prefix}/${version}/fundamentals/ -> ${base}/${version}/
29+
[*-master]: ${prefix}/${version}/fundamentals/connection/ -> ${base}/${version}/
30+
[*-master]: ${prefix}/${version}/fundamentals/crud/ -> ${base}/${version}/
31+
[*-master]: ${prefix}/${version}/fundamentals/crud/read-operations/ -> ${base}/${version}/
32+
[*-master]: ${prefix}/${version}/fundamentals/crud/write-operations/ -> ${base}/${version}/
33+
[*-master]: ${prefix}/${version}/usage-examples/ -> ${base}/${version}/
34+
[*-master]: ${prefix}/${version}/get-started/create-connection-string/ -> ${base}/${version}/get-started/
35+
[*-master]: ${prefix}/${version}/get-started/deploy-cluster/ -> ${base}/${version}/get-started/
36+
[*-master]: ${prefix}/${version}/get-started/download-driver/ -> ${base}/${version}/get-started/
37+
[*-master]: ${prefix}/${version}/get-started/run-sample-query/ -> ${base}/${version}/get-started/
38+
[*-master]: ${prefix}/${version}/compatibility/ -> ${base}/${version}/reference/compatibility/
39+
[*-master]: ${prefix}/${version}/previous-versions/ -> ${base}/${version}/reference/previous-versions/
40+
[*-master]: ${prefix}/${version}/quick-reference/ -> ${base}/${version}/reference/quick-reference/
41+
[*-master]: ${prefix}/${version}/whats-new/ -> ${base}/${version}/reference/release-notes/
42+
[*-master]: ${prefix}/${version}/upgrade/ -> ${base}/${version}/reference/upgrade/
43+
[*-master]: ${prefix}/${version}/upgrade/v2/ -> ${base}/${version}/reference/upgrade/v2/
44+
[*-master]: ${prefix}/${version}/upgrade/v3/ -> ${base}/${version}/reference/upgrade/v3/
45+
[*-master]: ${prefix}/${version}/fundamentals/linq/ -> ${base}/${version}/aggregation/
46+
[*-master]: ${prefix}/${version}/fundamentals/aggregation/ -> ${base}/${version}/aggregation/
47+
[*-master]: ${prefix}/${version}/fundamentals/odata/ -> ${base}/${version}/integrations/odata/
48+
[*-master]: ${prefix}/${version}/fundamentals/indexes/ -> ${base}/${version}/indexes/
49+
[*-master]: ${prefix}/${version}/fundamentals/atlas-search/ -> ${base}/${version}/atlas-search/
50+
[*-master]: ${prefix}/${version}/fundamentals/builders/ -> ${base}/${version}/
51+
[*-master]: ${prefix}/${version}/fundamentals/connection/connection-options/ -> ${base}/${version}/connect/connection-options/
52+
[*-master]: ${prefix}/${version}/fundamentals/connection/connection-pools/ -> ${base}/${version}/connect/connection-options/connection-pools/
53+
[*-master]: ${prefix}/${version}/fundamentals/connection/network-compression/ -> ${base}/${version}/connect/connection-options/network-compression/
54+
[*-master]: ${prefix}/${version}/fundamentals/connection/server-selection/ -> ${base}/${version}/connect/connection-options/server-selection/
55+
[*-master]: ${prefix}/${version}/fundamentals/connection/connect/ -> ${base}/${version}/connect/mongoclient/
56+
[*-master]: ${prefix}/${version}/fundamentals/connection/tls/ -> ${base}/${version}/security/tls-ssl/
57+
[*-master]: ${prefix}/${version}/fundamentals/read-write-configuration/ -> ${base}/${version}/crud/configure/
58+
[*-master]: ${prefix}/${version}/connection-troubleshooting/ -> ${base}/${version}/connect/connection-troubleshooting/
59+
[*-master]: ${prefix}/${version}/fundamentals/geo/ -> ${base}/${version}/crud/geo/
60+
[*-master]: ${prefix}/${version}/fundamentals/stable-api/ -> ${base}/${version}/connect/connection-options/stable-api/
61+
[*-master]: ${prefix}/${version}/fundamentals/gridfs/ -> ${base}/${version}/crud/gridfs/
62+
[*-master]: ${prefix}/${version}/fundamentals/specify-query/ -> ${base}/${version}/crud/query/specify-query/
63+
[*-master]: ${prefix}/${version}/fundamentals/transactions/ -> ${base}/${version}/crud/transactions/
64+
[*-master]: ${prefix}/${version}/fundamentals/bson/ -> ${base}/${version}/document-formats/bson/
65+
[*-master]: ${prefix}/${version}/fundamentals/time-series/ -> ${base}/${version}/time-series/
66+
[*-master]: ${prefix}/${version}/fundamentals/logging/ -> ${base}/${version}/logging-and-monitoring/logging/
67+
[*-master]: ${prefix}/${version}/fundamentals/monitoring/ -> ${base}/${version}/logging-and-monitoring/monitoring/
68+
[*-master]: ${prefix}/${version}/fundamentals/database-collection/ -> ${base}/${version}/databases-collections/
69+
[*-master]: ${prefix}/${version}/fundamentals/encrypt-fields/ -> ${base}/${version}/security/in-use-encryption/
70+
[*-master]: ${prefix}/${version}/fundamentals/crud/read-operations/distinct/ -> ${base}/${version}/crud/query/distinct/
71+
[*-master]: ${prefix}/${version}/fundamentals/crud/read-operations/retrieve/ -> ${base}/${version}/crud/query/find/
72+
[*-master]: ${prefix}/${version}/fundamentals/crud/read-operations/project/ -> ${base}/${version}/crud/query/project/
73+
[*-master]: ${prefix}/${version}/fundamentals/crud/read-operations/specify-documents-to-return/ -> ${base}/${version}/crud/query/specify-documents-to-return/
74+
[*-master]: ${prefix}/${version}/fundamentals/crud/read-operations/change-streams/ -> ${base}/${version}/logging-and-monitoring/change-streams/
75+
[*-master]: ${prefix}/${version}/fundamentals/crud/write-operations/insert/ -> ${base}/${version}/crud/insert/
76+
[*-master]: ${prefix}/${version}/fundamentals/crud/write-operations/delete/ -> ${base}/${version}/crud/delete/
77+
[*-master]: ${prefix}/${version}/fundamentals/crud/write-operations/bulk-write/ -> ${base}/${version}/bulk-write/
78+
[*-master]: ${prefix}/${version}/fundamentals/crud/write-operations/replace/ -> ${base}/${version}/crud/replace/
79+
[*-master]: ${prefix}/${version}/fundamentals/crud/write-operations/update-many/ -> ${base}/${version}/crud/update-many/
80+
[*-master]: ${prefix}/${version}/fundamentals/crud/write-operations/update-many/arrays/ -> ${base}/${version}/crud/update-many/arrays/
81+
[*-master]: ${prefix}/${version}/fundamentals/crud/write-operations/update-many/fields/ -> ${base}/${version}/crud/update-many/fields/
82+
[*-master]: ${prefix}/${version}/fundamentals/crud/write-operations/update-one/ -> ${base}/${version}/crud/update-one/
83+
[*-master]: ${prefix}/${version}/fundamentals/crud/write-operations/update-one/arrays/ -> ${base}/${version}/crud/update-one/arrays/
84+
[*-master]: ${prefix}/${version}/fundamentals/crud/write-operations/update-one/fields/ -> ${base}/${version}/crud/update-one/fields/
85+
[*-master]: ${prefix}/${version}/fundamentals/serialization/class-mapping/ -> ${base}/${version}/serialization/class-mapping/
86+
[*-master]: ${prefix}/${version}/fundamentals/serialization/poco/ -> ${base}/${version}/serialization/poco/
87+
[*-master]: ${prefix}/${version}/fundamentals/serialization/polymorphic-objects/ -> ${base}/${version}/serialization/polymorphic-objects/
88+
[*-master]: ${prefix}/${version}/fundamentals/serialization/ -> ${base}/${version}/serialization/
89+
[*-master]: ${prefix}/${version}/fundamentals/databases-collections/run-command/ -> ${base}/${version}/run-command/
90+
[*-master]: ${prefix}/${version}/fundamentals/authentication/ -> ${base}/${version}/security/authentication/
91+
[*-master]: ${prefix}/${version}/fundamentals/authentication/aws-iam/ -> ${base}/${version}/security/authentication/aws-iam/
92+
[*-master]: ${prefix}/${version}/fundamentals/authentication/kerberos/ -> ${base}/${version}/security/authentication/kerberos/
93+
[*-master]: ${prefix}/${version}/fundamentals/authentication/ldap/ -> ${base}/${version}/security/authentication/ldap/
94+
[*-master]: ${prefix}/${version}/fundamentals/authentication/oidc/ -> ${base}/${version}/security/authentication/oidc/
95+
[*-master]: ${prefix}/${version}/fundamentals/authentication/scram/ -> ${base}/${version}/security/authentication/scram/
96+
[*-master]: ${prefix}/${version}/fundamentals/authentication/x509/ -> ${base}/${version}/security/authentication/x509/
97+
[*-master]: ${prefix}/${version}/crud/query/specify-documents-to-return/ -> ${base}/${version}/crud/query/specify-documents/
98+
[*-master]: ${prefix}/${version}/crud/query/specify-query/ -> ${base}/${version}/crud/query/query-filter/

snooty.toml

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
toc_landing_pages = [
2-
"/fundamentals/connection",
3-
"/fundamentals/crud",
4-
"/usage-examples",
5-
"/fundamentals",
6-
"/fundamentals/serialization",
7-
"/fundamentals/crud/write-operations/update-one",
8-
"/fundamentals/crud/write-operations/update-many",
9-
"/fundamentals/authentication",
10-
"/upgrade",
11-
"/fundamentals/database-collection",
12-
"/fundamentals/indexes",
2+
"/get-started",
3+
"/connect/connection-options",
4+
"/security/authentication",
5+
"/aggregation",
6+
"/aggregation/stages",
7+
"/serialization",
8+
"/indexes",
139
]
1410
name = "csharp"
1511
title = "C#/.NET Driver"
@@ -50,4 +46,4 @@ not-available = "N/A"
5046
analyzer = "MongoDB C# Analyzer"
5147
analyzer-short = "C# Analyzer"
5248
query-api = "MongoDB Query API"
53-
vector-search = "Atlas Vector Search"
49+
avs = "Atlas Vector Search"

source/aggregation.txt

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
.. _csharp-aggregation:
2+
3+
======================
4+
Aggregation Operations
5+
======================
6+
7+
.. facet::
8+
:name: genre
9+
:values: reference
10+
11+
.. meta::
12+
:keywords: dotnet, code example, transform, pipeline
13+
14+
.. contents:: On this page
15+
:local:
16+
:backlinks: none
17+
:depth: 2
18+
:class: singlecol
19+
20+
.. toctree::
21+
:titlesonly:
22+
:maxdepth: 1
23+
24+
Pipeline Stages </aggregation/stages>
25+
LINQ </aggregation/linq>
26+
27+
Overview
28+
--------
29+
30+
In this guide, you can learn how to use the {+driver-long+} to perform
31+
**aggregation operations**.
32+
33+
Aggregation operations process data in your MongoDB collections and
34+
return computed results. The MongoDB Aggregation framework is modeled on the
35+
concept of data processing pipelines. Documents enter a pipeline comprised of one or
36+
more stages, and this pipeline transforms the documents into an aggregated result.
37+
38+
To learn more about the aggregation stages supported by the {+driver-short+}, see
39+
:ref:`Aggregation Stages <csharp-aggregation-stages>`.
40+
41+
.. sharedinclude:: dbx/agg-tutorials-manual-tip.rst
42+
43+
.. replacement:: language
44+
45+
:guilabel:`{+language+}`
46+
47+
Analogy
48+
~~~~~~~
49+
50+
Aggregation operations function similarly to car factories with assembly
51+
lines. The assembly lines have stations with specialized tools to
52+
perform specific tasks. For example, when building a car, the assembly
53+
line begins with the frame. Then, as the car frame moves through the
54+
assembly line, each station assembles a separate part. The result is a
55+
transformed final product, the finished car.
56+
57+
The assembly line represents the *aggregation pipeline*, the individual
58+
stations represent the *aggregation stages*, the specialized tools
59+
represent the *expression operators*, and the finished product
60+
represents the *aggregated result*.
61+
62+
Compare Aggregation and Find Operations
63+
---------------------------------------
64+
65+
The following table lists the different tasks you can perform with find
66+
operations, compared to what you can achieve with aggregation
67+
operations. The aggregation framework provides expanded functionality
68+
that allows you to transform and manipulate your data.
69+
70+
.. list-table::
71+
:header-rows: 1
72+
:widths: 50 50
73+
74+
* - Find Operations
75+
- Aggregation Operations
76+
77+
* - | Select *certain* documents to return
78+
| Select *which* fields to return
79+
| Sort the results
80+
| Limit the results
81+
| Count the results
82+
- | Select *certain* documents to return
83+
| Select *which* fields to return
84+
| Sort the results
85+
| Limit the results
86+
| Count the results
87+
| Group the results
88+
| Rename fields
89+
| Compute new fields
90+
| Summarize data
91+
| Connect and merge data sets
92+
93+
Server Limitations
94+
------------------
95+
96+
Consider the following :manual:`limitations </core/aggregation-pipeline-limits/>` when
97+
performing aggregation operations:
98+
99+
- Returned documents must not violate the :manual:`BSON document size limit </reference/limits/#mongodb-limit-BSON-Document-Size>`
100+
of 16 megabytes.
101+
102+
- Pipeline stages have a memory limit of 100 megabytes by default. If required, you can exceed this limit by setting
103+
the `AllowDiskUse <{+new-api-root+}/MongoDB.Driver/MongoDB.Driver.AggregateOptions.AllowDiskUse.html#MongoDB_Driver_AggregateOptions_AllowDiskUse>`__
104+
property of the ``AggregateOptions`` object that you pass to the ``Aggregate()`` method.
105+
106+
Troubleshooting
107+
---------------
108+
109+
.. include:: /includes/troubleshooting/unsupported-filter-expression.rst
110+
111+
Additional Information
112+
----------------------
113+
114+
To view a full list of expression operators, see
115+
:manual:`Aggregation Operators </reference/operator/aggregation/>`.
116+
117+
To learn about explaining MongoDB aggregation operations, see
118+
:manual:`Explain Results </reference/explain-results/>` and
119+
:manual:`Query Plans </core/query-plans/>`.

source/fundamentals/linq.txt renamed to source/aggregation/linq.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
.. _csharp-linq:
22

3+
======================================
4+
LINQ Syntax for Aggregation Operations
5+
======================================
36
======================================
47
LINQ Syntax for Aggregation Operations
58
======================================
@@ -36,7 +39,7 @@ The {+driver-short+} automatically translates LINQ queries into
3639
The examples in this guide use the ``restaurants`` collection
3740
in the ``sample_restaurants`` database provided in the :atlas:`Atlas sample datasets </sample-data>`.
3841
To learn how to create a free MongoDB Atlas cluster and load the sample datasets,
39-
see the :ref:`<csharp-quickstart>`.
42+
see :ref:`<csharp-get-started>`.
4043

4144
The following ``Restaurant``, ``Address`` and ``GradeEntry`` classes model the
4245
documents in this collection:
@@ -1025,7 +1028,7 @@ aggregation stages:
10251028
- ``$out``
10261029

10271030
To learn how to create an aggregation pipeline with the ``$out`` stage by using Builders, see
1028-
the :ref:`<csharp-builders-out>` section.
1031+
:ref:`<csharp-aggregation-stages>`.
10291032

10301033
Supported Methods
10311034
-----------------

0 commit comments

Comments
 (0)