summaryrefslogtreecommitdiff
path: root/db/dbcommands.cpp
diff options
context:
space:
mode:
authorAntonin Kral <a.kral@bobek.cz>2010-08-18 09:26:34 +0200
committerAntonin Kral <a.kral@bobek.cz>2010-08-18 09:26:34 +0200
commit99da8d4003cd4619c8655f4a9db74e567d458e68 (patch)
tree7ffe10ec1cd5f0f86be0b7b6f46a935c5f279046 /db/dbcommands.cpp
parent63f119d2d1a2ed62bc492b427fc498c3c3989149 (diff)
parent0a9f6162d232e4fb4b70ca07c4a65c0a12173cfc (diff)
downloadmongodb-99da8d4003cd4619c8655f4a9db74e567d458e68.tar.gz
Merge commit 'upstream/1.6.1'
Diffstat (limited to 'db/dbcommands.cpp')
-rw-r--r--db/dbcommands.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/db/dbcommands.cpp b/db/dbcommands.cpp
index 94edf0a..34d00c8 100644
--- a/db/dbcommands.cpp
+++ b/db/dbcommands.cpp
@@ -1451,17 +1451,18 @@ namespace mongo {
BSONElementSet values;
shared_ptr<Cursor> cursor = bestGuessCursor(ns.c_str() , query , BSONObj() );
+ scoped_ptr<ClientCursor> cc (new ClientCursor(QueryOption_NoCursorTimeout, cursor, ns));
while ( cursor->ok() ){
- if ( cursor->matcher() && ! cursor->matcher()->matchesCurrent( cursor.get() ) ){
- cursor->advance();
- continue;
+ if ( !cursor->matcher() || cursor->matcher()->matchesCurrent( cursor.get() ) ){
+ BSONObj o = cursor->current();
+ o.getFieldsDotted( key, values );
}
- BSONObj o = cursor->current();
cursor->advance();
-
- o.getFieldsDotted( key.c_str(), values );
+
+ if (!cc->yieldSometimes())
+ break;
}
BSONArrayBuilder b( result.subarrayStart( "values" ) );