Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHPC-2518: Support sort option for updateOne and replaceOne #1794

Merged
merged 1 commit into from
Feb 25, 2025

Conversation

jmikola
Copy link
Member

@jmikola jmikola commented Feb 24, 2025

https://jira.mongodb.org/browse/PHPC-2518

updateMany does not support sort. That validation is handled by mongoc_bulk_operation_update_many_with_opts().

updateMany does not support sort. That validation is handled by mongoc_bulk_operation_update_many_with_opts().
@jmikola jmikola requested a review from GromNaN February 24, 2025 20:22
$manager->executeBulkWrite(NS, $bulk);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(['_id' => ['$gt' => 1]], ['x' => 22], ['sort' => ['_id' => -1]]);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you want to test replaceOne here instead? This other method is in the spec commit. Otherwise I don't get the benefit of this 2nd update.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is actually testing the code path for mongoc_bulk_operation_replace_one_with_opts. PHPC's original bulk write API only provides a single BulkWrite::update() method, and we branch according to the structure of the second argument and multi option.

See: https://github.com/mongodb/mongo-php-driver/blob/1.20.1/src/MongoDB/BulkWrite.c#L452

This isn't relevant to the upcoming API for the bulkWrite command, which will have specific methods in PHPC.

@jmikola
Copy link
Member Author

jmikola commented Feb 24, 2025

FYI: Evergreen failures are all due to failed downloads when bootstrapping mongo-orchestration. mongodb-labs/drivers-evergreen-tools#612 was intended to address that but I don't think the retry logic was sufficient.

@jmikola jmikola merged commit 564c377 into mongodb:v1.x Feb 25, 2025
60 checks passed
@jmikola jmikola deleted the 1.x-phpc-2518 branch February 25, 2025 15:26
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Mar 2, 2025
1.21.0

What's Changed

* PHPC-2343: Require PHP 8.1 by @alcaeus in
  mongodb/mongo-php-driver#1631

* Update branch names for GHA workflows by @alcaeus in
  mongodb/mongo-php-driver#1646

* Bump version to 1.21-dev by @alcaeus in
  mongodb/mongo-php-driver#1661

* Document how to run part of the test suite by @GromNaN in
  mongodb/mongo-php-driver#1690

* PHPC-2458: Deprecate float arg for UTCDateTime constructor by @jmikola in
  mongodb/mongo-php-driver#1695

* PHPC-2464: Emit deprecation notice for negative "limit" Query option by
  @jmikola in mongodb/mongo-php-driver#1710

* PHPC-2460: Use zend_zval_type_name instead of internal macros by @jmikola
  in mongodb/mongo-php-driver#1714

* PHPC-1247: Update links to PHP.net docs by @jmikola in
  mongodb/mongo-php-driver#1735

* Test PPC and Zseries on RHEL 9 by @alcaeus in
  mongodb/mongo-php-driver#1740

* PHPC-2472: Update to libmongocrypt 1.12.0 by @jmikola in
  mongodb/mongo-php-driver#1743

* PHPC-2473: Bump to libmongoc 1.29.0 by @jmikola in
  mongodb/mongo-php-driver#1748

* PHPC-2471: Sync BSON corpus tests for Y10K date parsing by @jmikola in
  mongodb/mongo-php-driver#1742

* Use correct arch name in Windows artifacts. by @mickverm in
  mongodb/mongo-php-driver#1762

* PHPC-2499: Update to libmongoc 1.29.2 by @jmikola in
  mongodb/mongo-php-driver#1766

* PHPC-2496: WriteException stub should inherit ServerException by @jmikola
  in mongodb/mongo-php-driver#1769

* PHPC-2477: Remove unused libmongoc and libbson constants by @jmikola in
  mongodb/mongo-php-driver#1768

* PHPC-2502: Remove XFAIL in server-executeQuery-012.phpt by @jmikola in
  mongodb/mongo-php-driver#1772

* PHPC-2489: Deprecate passing WriteConcern and ReadPreference objects to
  execute methods by @jmikola in
  mongodb/mongo-php-driver#1770

* PHPC-2501: Conditionally define MONGOC_CYRUS_PLUGIN_PATH_PREFIX on Windows
  by @jmikola in mongodb/mongo-php-driver#1777

* PHPC-2503: Conditionally allow more concise output for libbson 1.30 by
  @jmikola in mongodb/mongo-php-driver#1779

* PHPC:2498: Accept integer types for Document array access by @jmikola in
  mongodb/mongo-php-driver#1781

* PHPC-2508 and PHPC-2506: Bump libmongoc to 1.30 by @jmikola in
  mongodb/mongo-php-driver#1785

* PHPC-2513: Check for returned _id before appending insert by @jmikola in
  mongodb/mongo-php-driver#1788

* PHPC-2519: Bump libmongoc to 1.30.1 by @jmikola in
  mongodb/mongo-php-driver#1792

* PHPC-2518: Support sort option for updateOne and replaceOne by @jmikola in
  mongodb/mongo-php-driver#1794

* Use pre-packaged-source for pie downloads by @asgrim in
  mongodb/mongo-php-driver#1782

New Contributors

* @asgrim made their first contribution in
  mongodb/mongo-php-driver#1782
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants