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

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

        self.data = initialData
        self.chunkSize = chunkSize
        self.transform = transform
        self.dataCount = initialData.count
    }
    
    /// Transforms the base cursor to a new cursor of a new type
