         
         strategy: switch strategy ?? collection.database.server.cursorStrategy {
         case .lazy:
-            if position >= self.data.count && self.cursorID != 0 {
+            if position >= dataCount && self.cursorID != 0 {
                 position = 0
                 self.data = []
                 self.data.reserveCapacity(Int(self.chunkSize))

            fallthrough
        case .aggressive:
            if let currentFetch = currentFetch {
                if position == self.data.count {
                    guard !currentFetch.isCompleted else {
                        break strategy
                    }

                                self.data.append(doc)
                            }
                        }
                        
                        self.dataCount = self.data.count
                    }
                    
                    self.cursorID = Int(reply.documents.first?["cursor"]["id"]) ?? -1
