Skip to content

Commit 343f339

Browse files
authored
DOCSP-45100: Delete and rename by name (#187)
* DOCSP-45100: Delete and rename by name * edits * JM feedback
1 parent 9190d50 commit 343f339

File tree

2 files changed

+50
-23
lines changed

2 files changed

+50
-23
lines changed

source/includes/write/gridfs.php

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,21 @@ function toJSON(object $document): string
8181
// end-download-to-stream
8282

8383
// Renames a file from the GridFS bucket with the specified ObjectId
84-
// start-rename-files
84+
// start-rename-files-id
8585
$bucket->rename(new ObjectId('66e0a5487c880f844c0a32b1'), 'new_file_name');
86-
// end-rename-files
86+
// end-rename-files-id
87+
88+
// Renames files from the GridFS bucket with the specified filename
89+
// start-rename-files-name
90+
$bucket->renameByName('my_file', 'new_file_name');
91+
// end-rename-files-name
8792

8893
// Deletes a file from the GridFS bucket with the specified ObjectId
89-
// start-delete-files
94+
// start-delete-files-id
9095
$bucket->delete(new ObjectId('66e0a5487c880f844c0a32b1'));
91-
// end-delete-files
96+
// end-delete-files-id
97+
98+
// Deletes a file and its revisions from the GridFS bucket by name
99+
// start-delete-files-name
100+
$bucket->deleteByName('my_file');
101+
// end-delete-files-name

source/write/gridfs.txt

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -375,48 +375,65 @@ Rename Files
375375
------------
376376

377377
Use the ``MongoDB\GridFS\Bucket::rename()`` method to update the name of
378-
a GridFS file in your bucket. You must specify the file to rename by its
379-
``_id`` field rather than its file name.
378+
a GridFS file in your bucket. Pass the following parameters to the ``rename()``
379+
method:
380+
381+
- ``_id`` value of the file you want to rename
382+
- New file name
380383

381384
The following example shows how to update the ``filename`` field to
382-
``'new_file_name'`` by referencing a document's ``_id`` field:
385+
``'new_file_name'`` by referencing a file's ``_id`` value:
383386

384387
.. literalinclude:: /includes/write/gridfs.php
385388
:language: php
386389
:dedent:
387-
:start-after: start-rename-files
388-
:end-before: end-rename-files
390+
:start-after: start-rename-files-id
391+
:end-before: end-rename-files-id
392+
393+
Alternatively, you can use the ``MongoDB\GridFS\Bucket::renameByName()``
394+
method to rename a GridFS file and all its file revisions. Pass the
395+
following parameters to the ``renameByName()`` method:
389396

390-
.. note:: File Revisions
397+
- ``filename`` value you want to change
398+
- New file name
391399

392-
The ``rename()`` method supports updating the name of only one file at
393-
a time. If you want to rename each file revision, or files with different upload
394-
times that share the same file name, collect the ``_id`` values of each revision.
395-
Then, pass each value in separate calls to the ``rename()`` method.
400+
The following example renames all files that have a ``filename`` value
401+
of ``'my_file'``:
402+
403+
.. literalinclude:: /includes/write/gridfs.php
404+
:language: php
405+
:dedent:
406+
:start-after: start-rename-files-name
407+
:end-before: end-rename-files-name
396408

397409
.. _gridfs-delete-files:
398410

399411
Delete Files
400412
------------
401413

402-
Use the ``MongoDB\GridFS\Bucket::delete()`` method to remove a file's collection
414+
Use the ``MongoDB\GridFS\Bucket::delete()`` method to remove a GridFS file's collection
403415
document and associated chunks from your bucket. This effectively deletes the file.
404-
You must specify the file by its ``_id`` field rather than its file name.
416+
Pass the ``_id`` value of the file you want to delete as a parameter to the
417+
``delete()`` method.
405418

406419
The following example shows you how to delete a file by referencing its ``_id`` field:
407420

408421
.. literalinclude:: /includes/write/gridfs.php
409422
:language: php
410423
:dedent:
411-
:start-after: start-delete-files
412-
:end-before: end-delete-files
424+
:start-after: start-delete-files-id
425+
:end-before: end-delete-files-id
413426

414-
.. note:: File Revisions
427+
Alternatively, you can use the ``MongoDB\GridFS\Bucket::deleteByName()`` method
428+
to delete a GridFS file and all its file revisions. Pass the ``filename`` value of the
429+
file you want to delete as a parameter to the ``deleteByName()`` method, as shown
430+
in the following code:
415431

416-
The ``delete()`` method supports deleting only one file at a time. If
417-
you want to delete each file revision, or files with different upload
418-
times that share the same file name, collect the ``_id`` values of each revision.
419-
Then, pass each value in separate calls to the ``delete()`` method.
432+
.. literalinclude:: /includes/write/gridfs.php
433+
:language: php
434+
:dedent:
435+
:start-after: start-delete-files-name
436+
:end-before: end-delete-files-name
420437

421438
API Documentation
422439
-----------------

0 commit comments

Comments
 (0)