-
Notifications
You must be signed in to change notification settings - Fork 1.5k
DOCSP-35970: Find one usage example #2768
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
Merged
Merged
Changes from all commits
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
ffd9d2c
DOCSP-35970: Find one usage example
norareidy e92a891
wording edits
norareidy bf46030
add running instructions
norareidy 6c12f4d
spacing, wording
norareidy e2145b6
RR feedback
norareidy e9aa9de
RR feedback 2
norareidy 4c4684d
Merge remote-tracking branch 'upstream/4.1' into DOCSP-35970-find-one…
norareidy 3bcad19
removing tabs, explain view
norareidy 1dc60a6
small edit
norareidy ab116ce
adding info
norareidy f6cc811
updates
norareidy 871f721
small fixes
norareidy 70c7014
wording change
norareidy c6c6e8f
test file
norareidy c68a476
edits
norareidy 7b2f1dc
moving test file
norareidy ac545b6
print syntax
norareidy 6b1f418
output format
norareidy b3c921e
Merge remote-tracking branch 'upstream/4.1' into DOCSP-35970-find-one…
norareidy 35e1dcc
apply phpcbf formatting
norareidy f5f4a44
code fix
norareidy c11f0cd
Merge branch 'DOCSP-35970-find-one-usage' of github.com:norareidy/lar…
norareidy 5f58f70
assertion
norareidy d775d8b
apply phpcbf formatting
norareidy 5bf1b71
method name
norareidy fc6f15b
Merge branch 'DOCSP-35970-find-one-usage' of github.com:norareidy/lar…
norareidy bf98e98
Update example test
GromNaN 420e60a
Merge remote-tracking branch 'upstream/4.1' into DOCSP-35970-find-one…
norareidy 901a4e4
Merge branch 'DOCSP-35970-find-one-usage' of github.com:norareidy/lar…
norareidy a8a6558
add to TOC
norareidy b75a786
merging
norareidy 4d13dc6
Fix namespace
GromNaN File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
namespace App\Http\Controllers; | ||
|
||
use App\Models\Movie; | ||
use MongoDB\Laravel\Tests\TestCase; | ||
|
||
class FindOneTest extends TestCase | ||
{ | ||
/** | ||
* @runInSeparateProcess | ||
* @preserveGlobalState disabled | ||
*/ | ||
public function testFindOne(): void | ||
{ | ||
require_once __DIR__ . '/Movie.php'; | ||
|
||
Movie::truncate(); | ||
Movie::insert([ | ||
['title' => 'The Shawshank Redemption', 'directors' => ['Frank Darabont', 'Rob Reiner']], | ||
]); | ||
|
||
// begin-find-one | ||
$movie = Movie::where('directors', 'Rob Reiner') | ||
->orderBy('_id') | ||
->first(); | ||
|
||
echo $movie->toJson(); | ||
// end-find-one | ||
|
||
$this->assertInstanceOf(Movie::class, $movie); | ||
$this->expectOutputRegex('/^{"_id":"[a-z0-9]{24}","title":"The Shawshank Redemption","directors":\["Frank Darabont","Rob Reiner"\]}$/'); | ||
} | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
.. _laravel-find-one-usage: | ||
|
||
=============== | ||
Find a Document | ||
=============== | ||
|
||
You can retrieve a single document from a collection by calling the ``where()`` and | ||
``first()`` methods on an Eloquent model or a query builder. | ||
norareidy marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Pass a query filter to the ``where()`` method and then call the ``first()`` method to | ||
return one document in the collection that matches the filter. If multiple documents match | ||
the query filter, ``first()`` returns the first matching document according to the documents' | ||
:term:`natural order` in the database or according to the sort order that you can specify | ||
by using the ``orderBy()`` method. | ||
|
||
Example | ||
------- | ||
|
||
This usage example performs the following actions: | ||
|
||
- Uses the ``Movie`` Eloquent model to represent the ``movies`` collection in the | ||
``sample_mflix`` database. | ||
- Retrieves a document from the ``movies`` collection that matches a query filter. | ||
|
||
The example calls the following methods on the ``Movie`` model: | ||
|
||
- ``where()``: matches documents in which the value of the ``directors`` field includes ``'Rob Reiner'``. | ||
- ``orderBy()``: sorts matched documents by their ascending ``_id`` values. | ||
- ``first()``: retrieves only the first matching document. | ||
|
||
.. io-code-block:: | ||
|
||
.. input:: ../includes/usage-examples/FindOneTest.php | ||
:start-after: begin-find-one | ||
:end-before: end-find-one | ||
:language: php | ||
:dedent: | ||
|
||
.. output:: | ||
:language: console | ||
:visible: false | ||
|
||
// Result is truncated | ||
|
||
{ | ||
"_id": "573a1398f29313caabce94a3", | ||
"plot": "Spinal Tap, one of England's loudest bands, is chronicled by film director | ||
Marty DeBergi on what proves to be a fateful tour.", | ||
"genres": [ | ||
"Comedy", | ||
"Music" | ||
], | ||
"runtime": 82, | ||
"metacritic": 85, | ||
"rated": "R", | ||
"cast": [ | ||
"Rob Reiner", | ||
"Kimberly Stringer", | ||
"Chazz Dominguez", | ||
"Shari Hall" | ||
], | ||
"poster": "https://m.media-amazon.com/images/M/MV5BMTQ2MTIzMzg5Nl5BMl5BanBnXkFtZTgwOTc5NDI1MDE@._V1_SY1000_SX677_AL_.jpg", | ||
"title": "This Is Spinal Tap", | ||
... | ||
} | ||
|
||
|
||
For instructions on editing your Laravel application to run the usage example, see the | ||
:ref:`Usage Example landing page <laravel-usage-examples>`. | ||
|
||
.. tip:: | ||
|
||
To learn more about retrieving documents with {+odm-short+}, see the | ||
:ref:`laravel-fundamentals-retrieve` guide |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.