Tôi cố gắng để lấy một số id mà tồn tại trong một cơ sở dữ liệu Mongo với đoạn mã sau:pymongo.errors.CursorNotFound: id con trỏ '...' không hợp lệ tại máy chủ
client = MongoClient('xx.xx.xx.xx', xxx)
db = client.test_database
db = client['...']
collection = db.test_collection
collection = db["..."]
for cursor in collection.find({ "$and" : [{ "followers" : { "$gt" : 2000 } }, { "followers" : { "$lt" : 3000 } }, { "list_followers" : { "$exists" : False } }] }):
print cursor['screenname']
print cursor['_id']['uid']
id = cursor['_id']['uid']
Tuy nhiên, sau một thời gian ngắn thời gian, tôi nhận được lỗi này:
pymongo.errors.CursorNotFound: cursor id '...' not valid at server.
tôi thấy article này trong đó đề cập đến vấn đề đó. Tuy nhiên nó không phải là rõ ràng với tôi mà giải pháp để có. Có thể sử dụng find().batch_size(30)
không? Chính xác thì lệnh trên làm gì? Tôi có thể lấy tất cả các id cơ sở dữ liệu bằng cách sử dụng batch_size
không?
Tôi đã xác định batch_size là 50. Tuy nhiên, tôi nhận được lỗi giống pymongo.errors.CursorNotFound: id con trỏ '' không hợp lệ tại serv er. Giá trị đúng tôi phải đặt batch_size là gì? –
@snakeplissken - cập nhật câu trả lời của tôi –
Làm thế nào tôi có thể chắc chắn với việc sử dụng thời gian chờ. Làm thế nào tôi có thể chắc chắn rằng con trỏ được đóng lại? –