<slide>
<title>Upserting documents</title>

<blurb>*upsert*: if the record(s) do not exist, insert one.</blurb>

<example result="1"><![CDATA[<?php
$m = new MongoClient;
$c = $m->demo->elephpants; $c->drop();

function birthDay( $c, $name )
{
    $c->update(
        [ 'name' => $name ],            // criteria
        [ '$inc' => [ 'age' => 1 ] ],   // update spec
        [ 'upsert' => true ]            // options
    );
    echo $c->findOne( [ 'name' => 'Santon' ] )['age'], "\n";
}

birthDay( $c, 'Santon' );
birthDay( $c, 'Santon' );
?>]]></example>
</slide>
