Update a Document
On this page
You can update a document in a collection by retrieving a single document and calling
the update()
method on an Eloquent model or a query builder.
Pass a query filter to the where()
method, sort the matching documents, and call the
first()
method to retrieve only the first document. Then, update this matching document
by passing your intended document changes to the update()
method.
Example
This usage example performs the following actions:
Uses the
Movie
Eloquent model to represent themovies
collection in thesample_mflix
databaseUpdates a document from the
movies
collection that matches the query filterPrints the number of updated documents
The example calls the following methods on the Movie
model:
where()
: matches documents in which the value of thetitle
field is"Carol"
.orderBy()
: sorts matched documents by their ascending_id
values.first()
: retrieves only the first matching document.update()
: updates the value of theimdb.rating
nested field to from6.9
to7.3
and the value of theimdb.votes
nested field from493
to142000
.
$updates = Movie::where('title', 'Carol') ->orderBy('_id') ->first() ->update([ 'imdb' => [ 'rating' => 7.3, 'votes' => 142000, ], ]); echo 'Updated documents: ' . $updates;
To learn how to edit your Laravel application to run the usage example, see the Usage Examples landing page.
Tip
To learn more about updating data with Laravel MongoDB, see the Modify Documents section of the Write Operations guide.