<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:42:02 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[CSHARP-2255] Unable to execute any Run Commands using C# Driver V2.5</title>
                <link>https://jira.mongodb.org/browse/CSHARP-2255</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;I&apos;m unable to successfully execute any run commands using the new C Sharp driver.  We previously used the C Sharp driver V1.1.  Similar commands worked properly in that environment.  In addition I&apos;m also using the MongoDB Java driver V3.6.3. The exact same commands work properly via RunCommand.&lt;/p&gt;

&lt;p&gt;Here is the simplified VB source I&apos;m using. &lt;br/&gt;
Dim _oClient As MongoClient = Nothing&lt;br/&gt;
Dim _oDatabase As MongoDatabase = Nothing&lt;br/&gt;
Dim _oCommandResult As CommandResult = Nothing&lt;br/&gt;
_oClient = New MongoClient(&quot;connstring&quot;)&lt;br/&gt;
_oDatabase = _oClient.GetServer().GetDatabase(New MongoUrl(&quot;connstring&quot;).DatabaseName)&lt;br/&gt;
Dim sCommand As String =  &quot;{aggregate:&quot;&quot;restaurants&quot;&quot;, pipeline:&lt;span class=&quot;error&quot;&gt;&amp;#91;{$group:{_id:&amp;quot;&amp;quot;$borough&amp;quot;&amp;quot;,borough:{$sum:1}}}&amp;#93;&lt;/span&gt;}&quot;     &lt;br/&gt;
_oCommandResult = _oDatabase.RunCommand(sCommand)&lt;/p&gt;

&lt;p&gt;Here is the stacktrace that results.  What is wrong?  I get &quot;no such command&quot; messages no matter what syntax I try.&lt;/p&gt;

&lt;p&gt;Thanks in advance,&lt;br/&gt;
                           Clifton Sothoron of Logi Analytics&lt;/p&gt;

&lt;p&gt;Command {aggregate:&quot;restaurants&quot;, pipeline:&lt;span class=&quot;error&quot;&gt;&amp;#91;{$group:{_id:&amp;quot;$borough&amp;quot;,borough:{$sum:1}}}&amp;#93;&lt;/span&gt;} failed: no such command: &apos;{aggregate:&quot;restaurants&quot;, pipeline:&lt;span class=&quot;error&quot;&gt;&amp;#91;{$group:{_id:&amp;quot;$borough&amp;quot;,borough:{$sum:1}}}&amp;#93;&lt;/span&gt;}&apos;, bad cmd: &apos;{ {aggregate:&quot;restaurants&quot;, pipeline:&lt;span class=&quot;error&quot;&gt;&amp;#91;{$group:{_id:&amp;quot;$borough&amp;quot;,borough:{$sum:1}}}&amp;#93;&lt;/span&gt;}: 1 }&apos;.&lt;br/&gt;
Source: &lt;br/&gt;
MongoDB.Driver.Core&lt;br/&gt;
Stack Trace: &lt;br/&gt;
 at MongoDB.Driver.Core.WireProtocol.CommandWireProtocol`1.ProcessReply(ConnectionId connectionId, ReplyMessage`1 reply) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Core\Core\WireProtocol\CommandWireProtocol.cs:line 189&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.Core.WireProtocol.CommandWireProtocol`1.Execute(IConnection connection, CancellationToken cancellationToken) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Core\Core\WireProtocol\CommandWireProtocol.cs:line 154&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocol&lt;span class=&quot;error&quot;&gt;&amp;#91;TResult&amp;#93;&lt;/span&gt;(IWireProtocol`1 protocol, CancellationToken cancellationToken) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Core\Core\Servers\Server.cs:line 728&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.Core.Servers.Server.ServerChannel.Command&lt;span class=&quot;error&quot;&gt;&amp;#91;TResult&amp;#93;&lt;/span&gt;(ICoreSession session, ReadPreference readPreference, DatabaseNamespace databaseNamespace, BsonDocument command, IElementNameValidator commandValidator, BsonDocument additionalOptions, Func`1 responseHandling, Boolean slaveOk, IBsonSerializer`1 resultSerializer, MessageEncoderSettings messageEncoderSettings, CancellationToken cancellationToken) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Core\Core\Servers\Server.cs:line 362&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.Core.Operations.CommandOperationBase`1.ExecuteProtocol(IChannelHandle channel, ICoreSessionHandle session, ReadPreference readPreference, CancellationToken cancellationToken) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Core\Core\Operations\CommandOperationBase.cs:line 152&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.Core.Operations.CommandOperationBase`1.ExecuteProtocol(IChannelSource channelSource, ICoreSessionHandle session, ReadPreference readPreference, CancellationToken cancellationToken) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Core\Core\Operations\CommandOperationBase.cs:line 182&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.Core.Operations.WriteCommandOperation`1.Execute(IWriteBinding binding, CancellationToken cancellationToken) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Core\Core\Operations\WriteCommandOperation.cs:line 57&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.OperationExecutor.ExecuteWriteOperation&lt;span class=&quot;error&quot;&gt;&amp;#91;TResult&amp;#93;&lt;/span&gt;(IWriteBinding binding, IWriteOperation`1 operation, CancellationToken cancellationToken) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver\OperationExecutor.cs:line 44&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.MongoDatabase.ExecuteWriteOperation&lt;span class=&quot;error&quot;&gt;&amp;#91;TResult&amp;#93;&lt;/span&gt;(IClientSessionHandle session, IWriteOperation`1 operation) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Legacy\MongoDatabase.cs:line 1052&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.MongoDatabase.RunCommandAs&lt;span class=&quot;error&quot;&gt;&amp;#91;TCommandResult&amp;#93;&lt;/span&gt;(IClientSessionHandle session, IMongoCommand command, IBsonSerializer`1 resultSerializer, ReadPreference readPreference) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Legacy\MongoDatabase.cs:line 1084&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.MongoDatabase.RunCommandAs&lt;span class=&quot;error&quot;&gt;&amp;#91;TCommandResult&amp;#93;&lt;/span&gt;(IClientSessionHandle session, IMongoCommand command, ReadPreference readPreference) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Legacy\MongoDatabase.cs:line 923&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.MongoDatabase.&amp;lt;&amp;gt;c_&lt;em&gt;DisplayClass71_0`1.b&lt;/em&gt;_0(IClientSessionHandle session) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Legacy\MongoDatabase.cs:line 913&lt;/p&gt;

&lt;p&gt; at MongoDB.Driver.MongoDatabase.UsingImplicitSession&lt;span class=&quot;error&quot;&gt;&amp;#91;TResult&amp;#93;&lt;/span&gt;(Func`2 func) in C:\work\rstam\mongo-csharp-driver-v2.5.0\src\MongoDB.Driver.Legacy\MongoDatabase.cs:line 1110&lt;/p&gt;

&lt;p&gt; at rdServer.MongoDBReader.OpenConnection() in C:\ReportDev\VB\rdServer\DataEngine\DataReaders\MongoDBReader.vb:line 853&lt;/p&gt;
</description>
                <environment>Windows 10, Framework 4.5.2, Visual Basic, MongoDB 3.4 database</environment>
        <key id="535264">CSHARP-2255</key>
            <summary>Unable to execute any Run Commands using C# Driver V2.5</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="peter.garafano@mongodb.com">Peter Garafano</assignee>
                                    <reporter username="cbsoth">Clifton Sothoron</reporter>
                        <labels>
                            <label>question</label>
                    </labels>
                <created>Fri, 27 Apr 2018 16:05:42 +0000</created>
                <updated>Sat, 28 Oct 2023 11:49:04 +0000</updated>
                            <resolved>Fri, 27 Apr 2018 21:59:29 +0000</resolved>
                                    <version>2.5</version>
                                                    <component>Command Operations</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="1878174" author="cbsoth" created="Mon, 30 Apr 2018 18:16:53 +0000"  >&lt;p&gt;Pete,&lt;/p&gt;

&lt;p&gt;Thank you for replying.&#160; I was able to get a version of what you proposed working.&lt;/p&gt;

&lt;p&gt;Dim oCmdDoc As New CommandDocument(MongoDB.Bson.Serialization.BsonSerializer.Deserialize(Of BsonDocument)(sCommand))&lt;/p&gt;

&lt;p&gt;_oCommandResult = _oDatabase.RunCommand(oCmdDoc)&lt;/p&gt;

&lt;p&gt;Best,&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &#160;Clifton Sothoron&lt;/p&gt;</comment>
                            <comment id="1876747" author="peter.garafano" created="Fri, 27 Apr 2018 21:52:11 +0000"  >&lt;p&gt;Hi Clifton,&lt;/p&gt;

&lt;p&gt;The overload of the &lt;tt&gt;RunCommand&lt;/tt&gt; method you are using there accepts a string of the command name. Since it assumes this is the command name, It does not parse the JSON. This results in the driver attempting to run a command that looks something like&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;{aggregate:&quot;&quot;restaurants&quot;&quot;, pipeline:[{$group:{_id:&quot;&quot;$borough&quot;&quot;,borough:{$sum:1}}}]}&quot;: 1}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;To get the aggregate command to run as you intend, you need to parse the JSON into a &lt;tt&gt;CommandDocument&lt;/tt&gt;.&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Dim client As MongoClient = New MongoClient&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Dim db As IMongoDatabase = client.GetDatabase(&quot;test&quot;)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Dim commandString As String = &quot;{aggregate:&quot;&quot;restaurants&quot;&quot;, pipeline:[{$group:{_id:&quot;&quot;$borough&quot;&quot;,borough:{$sum:1}}}]}&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Dim cmdDocument = CommandDocument.Parse(commandString)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Dim cmdResult As BsonDocument = db.RunCommand(Of BsonDocument)(cmdDocument)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Console.WriteLine(cmdResult)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;In general, parsing JSON commands like this is inefficient and, depending on the source of the string, can pose a significant security risk. The driver provides a number of methods for building aggregations that aren&apos;t susceptible to these issues. For example, the same command can be built with&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Dim commandDocument = New CommandDocument(&quot;aggregate&quot;,&quot;restaurants&quot;).Add(&quot;pipeline&quot;, New BsonArray().Add(New BsonDocument(&quot;$group&quot;,New BsonDocument(&quot;_id&quot;,&quot;$borough&quot;).Add(&quot;borough&quot;, New BsonDocument(&quot;$sum&quot;,1)))))&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;Or using the stronger typed method of&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Dim col As IMongoCollection(Of BsonDocument) = db.GetCollection(Of BsonDocument)(&quot;test&quot;)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Dim agg = col.Aggregate().Group(New BsonDocument(&quot;_id&quot;,&quot;$borough&quot;).Add(&quot;borough&quot;, New BsonDocument(&quot;$sum&quot;,1)))&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Dim res = agg.ToList()&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Console.WriteLine(res)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;Please keep in mind, the driver will provide even stronger typing if you want/need it. Additionally, I don&apos;t recommend calling &lt;tt&gt;ToList()&lt;/tt&gt; on a result set of unknown size. &lt;/p&gt;

&lt;p&gt;Some helpful links to expand on some of the subjects I mentioned.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://mongodb.github.io/mongo-csharp-driver/2.5/reference/driver/definitions/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Definitions and Builders&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://mongodb.github.io/mongo-csharp-driver/2.5/reference/driver/crud/reading/#aggregation&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Aggregations&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://mongodb.github.io/mongo-csharp-driver/2.5/reference/driver/crud/reading/#iteration&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Iterating Cursors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Please let me know if you have any other questions.&lt;/p&gt;

&lt;p&gt;-Pete&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htnpcv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>