Skip to content

Commit 4966d93

Browse files
committed
PYTHON-2182 Use namespace returned from find command in getMore
1 parent 5b49557 commit 4966d93

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

pymongo/cursor.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,10 @@ def __init__(self, collection, filter=None, projection=None, skip=0,
226226
if oplog_replay:
227227
self.__query_flags |= _QUERY_OPTIONS["oplog_replay"]
228228

229+
# The namespace to use for find/getMore commands.
230+
self.__dbname = collection.database.name
231+
self.__collname = collection.name
232+
229233
@property
230234
def collection(self):
231235
"""The :class:`~pymongo.collection.Collection` that this
@@ -1037,6 +1041,10 @@ def __send_message(self, operation):
10371041
self.__id = cursor['id']
10381042
if cmd_name == 'find':
10391043
documents = cursor['firstBatch']
1044+
# Update the namespace used for future getMore commands.
1045+
ns = cursor.get('ns')
1046+
if ns:
1047+
self.__dbname, self.__collname = ns.split('.', 1)
10401048
else:
10411049
documents = cursor['nextBatch']
10421050
self.__data = deque(documents)
@@ -1116,8 +1124,8 @@ def _refresh(self):
11161124
limit = self.__batch_size
11171125

11181126
# Exhaust cursors don't send getMore messages.
1119-
g = self._getmore_class(self.__collection.database.name,
1120-
self.__collection.name,
1127+
g = self._getmore_class(self.__dbname,
1128+
self.__collname,
11211129
limit,
11221130
self.__id,
11231131
self.__codec_options,

0 commit comments

Comments
 (0)