Uploaded image for project: 'PHP Driver: Extension'
  1. PHP Driver: Extension
  2. PHPC-477

Revert BulkWrite::count() to counting total write ops and create new getNumRoundTrips() method

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Minor - P4 Minor - P4
    • None
    • Affects Version/s: 1.0.0
    • Component/s: None
    • Labels:
      None

      The count() method (implementing the Countable interface) was originally documented as returning "the number of operations that have been added to the bulk". At some point, this was changed to report the number of expected round-trips to the server (via bulk->commands.len). I propose restoring the original behavior, and moving the round-trip estimation to a new method.

      On a separate, but related, note: count() currently returns 4 irrespective of the ordered option in:

      $bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
      $bulk->insert(['_id' => 1, 'x' => 1]);
      $bulk->insert(['_id' => 2, 'x' => 2]);
      $bulk->update(
          ['x' => 2],
          ['$set' => ['x' => 1]],
          ['limit' => 1, 'upsert' => false]
      );
      $bulk->delete(['x' => 1], ['limit' => 1]);
      $bulk->update(
          ['_id' => 3],
          ['$set' => ['x' => 3]],
          ['limit' => 1, 'upsert' => true]
      );
      

      I would expect an unordered bulk to only require three round-trips.

            Assignee:
            Unassigned Unassigned
            Reporter:
            jmikola@mongodb.com Jeremy Mikola
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: