<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:10:46 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>[CDRIVER-838] Support find, getMore and killCursor commands</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-838</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description></description>
                <environment></environment>
        <key id="229446">CDRIVER-838</key>
            <summary>Support find, getMore and killCursor commands</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</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="9">Done</resolution>
                                        <assignee username="jesse@mongodb.com">A. Jesse Jiryu Davis</assignee>
                                    <reporter username="jesse@mongodb.com">A. Jesse Jiryu Davis</reporter>
                        <labels>
                    </labels>
                <created>Fri, 11 Sep 2015 22:28:23 +0000</created>
                <updated>Tue, 16 Feb 2016 17:34:11 +0000</updated>
                            <resolved>Mon, 16 Nov 2015 20:23:46 +0000</resolved>
                                                    <fixVersion>1.3.0-beta0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="1174426" author="xgen-internal-githook" created="Tue, 16 Feb 2016 17:34:11 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-1117&quot; title=&quot;Delete mongoc_cluster_run_command_rpc&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-1117&quot;&gt;&lt;del&gt;CDRIVER-1117&lt;/del&gt;&lt;/a&gt; delete mongoc_cluster_run_command_rpc&lt;/p&gt;

&lt;p&gt;I introduced the function for &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; to implement &quot;find&quot;/&quot;getMore&quot;&lt;br/&gt;
commands &amp;#8211; the cursor was built to send and receive RPCs, so it was&lt;br/&gt;
easier to stick a find or getMore command into an RPC and send it,&lt;br/&gt;
instead of using the standard command path from the cursor code.&lt;/p&gt;

&lt;p&gt;This causes some duplication, however, and it makes it very hard to&lt;br/&gt;
consistently record command events originating from cursors and those&lt;br/&gt;
that don&apos;t (&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-769&quot; title=&quot;APM Internal API&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-769&quot;&gt;&lt;del&gt;CDRIVER-769&lt;/del&gt;&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Remove mongoc_cluster_run_command_rpc and use the standard command path.&lt;br/&gt;
When a cursor runs a command, it no longer stores the reply in its rpc&lt;br/&gt;
struct; instead it stores the reply in a bson_t on its iface_data.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/dd115e8e2c22eb68dc1b47bbc57740520ee42244&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/dd115e8e2c22eb68dc1b47bbc57740520ee42244&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1089654" author="xgen-internal-githook" created="Mon, 16 Nov 2015 20:22:42 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; simplify killCursors test&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/ea68fc78b7a15206717176a8ee3ae8c61f2129c6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/ea68fc78b7a15206717176a8ee3ae8c61f2129c6&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1089653" author="xgen-internal-githook" created="Mon, 16 Nov 2015 20:22:41 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; killCursors: &quot;collection&quot;, not full ns&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/fcb6e62be031cbb1e1b9a58245933c46372e04d9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/fcb6e62be031cbb1e1b9a58245933c46372e04d9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1089652" author="xgen-internal-githook" created="Mon, 16 Nov 2015 20:22:40 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; test killCursors cmd with mock server&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/5d1bd94570b307068ecc05eb8e5b75761a3ac8a2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/5d1bd94570b307068ecc05eb8e5b75761a3ac8a2&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1089651" author="xgen-internal-githook" created="Mon, 16 Nov 2015 20:22:38 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; send killCursors cmd to MongoDB 3.2+&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/7d8679314f5ee7540a05a4c9e2a950ed9176ad69&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/7d8679314f5ee7540a05a4c9e2a950ed9176ad69&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1089507" author="xgen-internal-githook" created="Mon, 16 Nov 2015 18:43:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; document MongoDB 3.2 query syntax&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/e643b54c199eddcfcc7cff190f501e2be63bc9a8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/e643b54c199eddcfcc7cff190f501e2be63bc9a8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1085889" author="xgen-internal-githook" created="Wed, 11 Nov 2015 18:59:34 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; use getMore cmd with MongoDB 3.2+&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/af4ae26c26aeb5ba6b15686c070e8cd299eb6bf8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/af4ae26c26aeb5ba6b15686c070e8cd299eb6bf8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1085888" author="xgen-internal-githook" created="Wed, 11 Nov 2015 18:59:33 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; batchSize is int32, not int64&lt;/p&gt;

&lt;p&gt;Also test find command with batchSize.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/3a0e53b021103e3e6811bf18405981a6322c949d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/3a0e53b021103e3e6811bf18405981a6322c949d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1085887" author="xgen-internal-githook" created="Wed, 11 Nov 2015 18:59:33 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; factor out OP_GETMORE code&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/0337b9fb9392a9673bb054cda7f44e0dceb2d9c4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/0337b9fb9392a9673bb054cda7f44e0dceb2d9c4&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1084998" author="xgen-internal-githook" created="Tue, 10 Nov 2015 21:55:26 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; remove field cursor-&amp;gt;failed.&lt;/p&gt;

&lt;p&gt;Redundant with cursor-&amp;gt;error.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/a3d0fe2fab7abfb1bd343ab51fd254f09b6af083&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/a3d0fe2fab7abfb1bd343ab51fd254f09b6af083&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1084979" author="xgen-internal-githook" created="Tue, 10 Nov 2015 21:43:58 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; use &quot;find&quot; command with mongodb 3.2+&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/254938e2a3523f4f1e9a76509a5de95a91519f20&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/254938e2a3523f4f1e9a76509a5de95a91519f20&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1081015" author="xgen-internal-githook" created="Thu, 5 Nov 2015 20:50:02 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; fix aggregation cursor iteration&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/9810666cb1c21b6d471c67c07e632be2c82d9fab&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/9810666cb1c21b6d471c67c07e632be2c82d9fab&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1080945" author="xgen-internal-githook" created="Thu, 5 Nov 2015 20:00:50 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; don&apos;t set aggregate cursor&apos;s is_command&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/8f0d9265fbfa4c1f955a88ddf0c63dc91ef5f1ab&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/8f0d9265fbfa4c1f955a88ddf0c63dc91ef5f1ab&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1078849" author="jesse" created="Wed, 4 Nov 2015 03:10:15 +0000"  >&lt;p&gt;You&apos;re right about $showRecordId, I&apos;ll update my comment. And yes, I&apos;ll need to deal with flags. Also skip, limit, batch size.&lt;/p&gt;</comment>
                            <comment id="1078463" author="xgen-internal-githook" created="Tue, 3 Nov 2015 20:00:47 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-838&quot; title=&quot;Support find, getMore and killCursor commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-838&quot;&gt;&lt;del&gt;CDRIVER-838&lt;/del&gt;&lt;/a&gt; refactor command cursors&lt;/p&gt;

&lt;p&gt;Preparation for implementing the &quot;find&quot; command.&lt;/p&gt;

&lt;p&gt;Cursors from commands (aggregate, listCollections, listDatabases) had&lt;br/&gt;
been implemented as regular cursors with a &quot;query&quot; that is the command.&lt;br/&gt;
mongoc_cursor_cursorid_prime() runs the query with _mongoc_cursor_next,&lt;br/&gt;
then transforms the cursor into a command cursor.&lt;/p&gt;

&lt;p&gt;This will get very tangled if &quot;find&quot; is a command, so I&apos;ve created a&lt;br/&gt;
specialized function _mongoc_cursor_run_command that cursors use to&lt;br/&gt;
run aggregate, listCollections, and listDatabases. This function calls&lt;br/&gt;
a new function mongoc_cluster_run_command_rpc which fills out the&lt;br/&gt;
cursor&apos;s buffer with the command reply. Command cursors then proceed&lt;br/&gt;
as before: iterate the initial batch from the command reply, then send&lt;br/&gt;
OP_GETMORE.&lt;/p&gt;

&lt;p&gt;The main advantage of this refactoring is that _mongoc_cursor_next is&lt;br/&gt;
now purely for regular query cursors.&lt;/p&gt;

&lt;p&gt;The next step will be to call the &quot;find&quot; command with this new function&lt;br/&gt;
_mongoc_cursor_run_command.&lt;/p&gt;

&lt;p&gt;A subtle behavior change: the driver used to send the initial aggregate&lt;br/&gt;
command lazily from mongoc_cursor_next if connected to a legacy server,&lt;br/&gt;
but sent the command eagerly from mongoc_collection_aggregate when&lt;br/&gt;
connected to a modern server. Now, mongoc_collection_aggregate never&lt;br/&gt;
sends the command eagerly. The &quot;aggregate&quot; command is always sent from&lt;br/&gt;
mongoc_cursor_next.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/bb42cec93feda9463e47bc7c3e0ec1d7c39ce7f3&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/bb42cec93feda9463e47bc7c3e0ec1d7c39ce7f3&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1077525" author="bjori" created="Tue, 3 Nov 2015 00:16:08 +0000"  >&lt;p&gt;I don&apos;t think we need to support&lt;/p&gt;
&lt;blockquote&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;            if key == &apos;$showRecordId&apos;: cmd[&apos;showRecordId&apos;] = value&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;/blockquote&gt;
&lt;p&gt;since that is a MongoDB 3.2 (e.g. find() command) feature, so legacy query documents wouldn&apos;t have it.&lt;/p&gt;

&lt;p&gt;The mongoc_query_flags_t flags will have to be rolled out too.. Does that need to happen irregardless $query was found in the query document?&lt;/p&gt;</comment>
                            <comment id="1077214" author="jesse" created="Mon, 2 Nov 2015 20:29:24 +0000"  >&lt;p&gt;Quick spec on how to upgrade from old-style query documents like this:&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;{ $query: { key: value }, $orderby: { key: value } }&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 this:&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;{ find: collection, filter: { key: value }, sort: { key: value } }&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;Of course that&apos;s not an exhaustive list of the transformations.&lt;/p&gt;

&lt;p&gt;mongoc_collection_find doesn&apos;t take any separate arguments for &quot;query&quot; or &quot;sort&quot;, much less for rarer options like maxTimeMS.&lt;/p&gt;

&lt;p&gt;The driver should upgrade from old- to new-style with logic 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;   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;if max wire version &amp;gt;= 4:&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;    cmd = { find: collection }&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;    if &quot;$query&quot; in cursor-&amp;gt;query:&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;        for key, value in cursor-&amp;gt;query:&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;            if key == &apos;$query&apos;: cmd[&apos;filter&apos;] = value&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;            if key == &apos;$orderby&apos;: cmd[&apos;sort&apos;] = value&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;            if key == &apos;$hint&apos;: cmd[&apos;hint&apos;] = value&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;            if key == &apos;$comment&apos;: cmd[&apos;comment&apos;] = value&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;            if key == &apos;$maxScan&apos;: cmd[&apos;maxScan&apos;] = value&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;            if key == &apos;$maxTimeMS&apos;: cmd[&apos;maxTimeMS&apos;] = value&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;            if key == &apos;$max&apos;: cmd[&apos;max&apos;] = value&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;            if key == &apos;$min&apos;: cmd[&apos;min&apos;] = value&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;            if key == &apos;$returnKey&apos;: cmd[&apos;returnKey&apos;] = value&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;            if key == &apos;$showDiskLoc&apos;: cmd[&apos;showRecordId&apos;] = value  # &amp;lt;= MongoDb 3.0&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;            if key == &apos;$snapshot&apos;: cmd[&apos;snapshot&apos;] = value&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;    else:&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;        append &quot;{filter&quot;: cursor-&amp;gt;query} to cmd&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;    &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;    if flags &amp;amp; tailable: cmd[&apos;tailable&apos;] = true&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;    if flags &amp;amp; oplogreplay: cmd[&apos;oplogReplay&apos;] = true&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;    if flags &amp;amp; nocursortimeout: cmd[&apos;noCursorTimeout&apos;] = true&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;    if flags &amp;amp; awaitdata: cmd[&apos;awaitData&apos;] = true&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;    if flags &amp;amp; partial: cmd[&apos;allowPartialResults&apos;] = true&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;&amp;nbsp;&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;    if limit: cmd[&apos;limit&apos;] = limit&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;    if batchsize: cmd[&apos;batchSize&apos;] = batchsize&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;    if skip: cmd[&apos;skip&apos;] = skip&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;&amp;nbsp;&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;    cursor_run_command (cmd)&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;else:&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;    cursor_send_op_query (cursor-&amp;gt;query)&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;This logic is adapted from PyMongo&apos;s:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/mongo-python-driver/blob/28885b25e85940bf4d9c1e87638a861fe5a89b71/pymongo/message.py#L160-L160&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-python-driver/blob/28885b25e85940bf4d9c1e87638a861fe5a89b71/pymongo/message.py#L160-L160&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We&apos;re not going to upgrade the &quot;explain&quot; command.&lt;/p&gt;

&lt;p&gt;This logic provides a clear upgrade path: old code still works in the great majority of common cases. Future code that knows it&apos;s talking to MongoDB 3.2+ can just send new-style find-command options to mongoc_collection_find. No ABI changes are required.&lt;/p&gt;

&lt;p&gt;Not yet shown : readConcern, that&apos;ll be another ticket.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="233020">CDRIVER-906</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="229445">CDRIVER-837</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="230772">CXX-672</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="230767">PHPC-429</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="191719">DRIVERS-211</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="237353">PHPC-482</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="237995">CDRIVER-988</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="210674">CDRIVER-705</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="262038">CDRIVER-1079</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="240814">CDRIVER-1023</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="258922">CDRIVER-1064</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="210674">CDRIVER-705</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="237986">CDRIVER-987</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>CDRIVER-817</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hre0sf:</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>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="741">C Driver 2015Q2 sprint 8</customfieldvalue>
    <customfieldvalue id="760">C Driver 2015Q2 sprint 9</customfieldvalue>
    <customfieldvalue id="781">C Driver 2015Q2 sprint 10</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>