text: // @tags: [requires_getmore]
  
  // Test that the MaxBytesToReturnToClientAtOnce limit is enforced.
  
  t = db.jstests_find9;
  t.drop();
  
  big = new Array(500000).toString();
  for (i = 0; i < 60; ++i) {
      t.save({a: i, b: big});
  }
  
  // Check size limit with a simple query.
  assert.eq(60, t.find({}, {a: 1}).objsLeftInBatch());  // Projection resizes the result set.
  assert.gt(60, t.find().objsLeftInBatch());
  
  // Check size limit on a query with an explicit batch size.
  assert.eq(60, t.find({}, {a: 1}).batchSize(80).objsLeftInBatch());
  assert.gt(60, t.find().batchSize(80).objsLeftInBatch());
  
  for (i = 0; i < 60; ++i) {
      t.save({a: i, b: big});
  }
  
  // Check size limit with get more.
  c = t.find().batchSize(80);
  while (c.hasNext()) {
      assert.gt(60, c.objsLeftInBatch());
      c.next();
  }
  
  assert.eq(120, t.find().sort({$natural: 1}).itcount());
  assert.eq(120, t.find().sort({_id: 1}).itcount());
  