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

                }
                
                _ = try currentFetch.await()
            } else if position == self.data.count && self.cursorID != 0 {
                _ = try self.getMore().await()
            } else if self.cursorID != 0 {
                self.currentFetch = try self.getMore()

    
    // documents already received by the server
    fileprivate var data: [T]
    
    // Cache of `data.count`
    // Used to prevent a crash when reading from a cursor that's receiving data
    fileprivate var dataCount: Int
    
    fileprivate let connection: Connection
    
