mongodb-odm-docs-dash/Doctrine ODM.docset/Contents/Resources/Documents/_sources/reference/upserting-documents.rst.txt

34 lines
905 B
ReStructuredText

Upserting Documents
===================
Upserting documents in the MongoDB ODM is easy. All you really have to do
is specify an ID ahead of time and Doctrine will perform an ``update`` operation
with the ``upsert`` flag internally instead of a ``batchInsert``.
Example:
.. code-block:: php
<?php
$article = new Article();
$article->setId($articleId);
$article->incrementNumViews();
$dm->persist($article);
$dm->flush();
The above would result in an operation like the following:
.. code-block:: php
<?php
$articleCollection->update(
array('_id' => new MongoId($articleId)),
array('$inc' => array('numViews' => 1)),
array('upsert' => true, 'safe' => true)
);
The extra benefit is the fact that you don't have to fetch the ``$article`` in order
to append some new data to the document or change something. All you need is the
identifier.