<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.mongodb-driver-command.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'mongodb-driver-command.construct.php',
    1 => 'MongoDB\\Driver\\Command::__construct',
    2 => 'Crea un nuevo comando',
  ),
  'up' => 
  array (
    0 => 'class.mongodb-driver-command.php',
    1 => 'MongoDB\\Driver\\Command',
  ),
  'prev' => 
  array (
    0 => 'class.mongodb-driver-command.php',
    1 => 'MongoDB\\Driver\\Command',
  ),
  'next' => 
  array (
    0 => 'class.mongodb-driver-query.php',
    1 => 'MongoDB\\Driver\\Query',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/mongodb/mongodb/driver/command/construct.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mongodb-driver-command.construct" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">MongoDB\Driver\Command::__construct</h1>
  <p class="verinfo">(mongodb &gt;=1.0.0)</p><p class="refpurpose"><span class="refname">MongoDB\Driver\Command::__construct</span> &mdash; <span class="dc-title">Crea un nuevo comando</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-mongodb-driver-command.construct-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">final</span> <span class="modifier">public</span> <span class="methodname"><strong>MongoDB\Driver\Command::__construct</strong></span>(<span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span> <code class="parameter">$document</code></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$commandOptions</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>)</div>

  <p class="para rdfs-comment">
   Construye un nuevo <span class="classname"><a href="class.mongodb-driver-command.php" class="classname">MongoDB\Driver\Command</a></span>, que es
   un objeto de valor inmutable que representa un comando de base de datos.
   El comando puede entonces ser ejecutado con
   <span class="methodname"><a href="mongodb-driver-manager.executecommand.php" class="methodname">MongoDB\Driver\Manager::executeCommand()</a></span>.
  </p>
  <p class="para">
   El documento de comando completo, que incluye el nombre del comando y sus
   opciones, debe ser expresado en el parámetro <code class="parameter">document</code>.
   El parámetro <code class="parameter">commandOptions</code> se utiliza únicamente
   para especificar las opciones relacionadas con la ejecución del comando y el resultado
   <span class="classname"><a href="class.mongodb-driver-cursor.php" class="classname">MongoDB\Driver\Cursor</a></span>.
  </p>

 </div>


 <div class="refsect1 parameters" id="refsect1-mongodb-driver-command.construct-parameters">
  <h3 class="title">Parámetros</h3>
  <dl>
   
    <dt><code class="parameter">document</code></dt>
    <dd>
     <p class="para">
      El documento de comando completo, que será enviado al servidor.
     </p>
    </dd>
   

   
    <dt><code class="parameter">commandOptions</code></dt>
    <dd>
     <blockquote class="note"><p><strong class="note">Nota</strong>: 
      <span class="simpara">
       No utilice este parámetro para especificar las opciones descritas en la
       referencia del comando en el manual de MongoDB. Este parámetro solo debe
       ser utilizado para las opciones explícitamente enumeradas a continuación.
      </span>
     </p></blockquote>
     <p class="para">
      <table class="doctable table">
       <caption><strong>commandOptions</strong></caption>
       
        <thead>
         <tr>
          <th>Option</th>
          <th>Type</th>
          <th>Descripción</th>
         </tr>

        </thead>

        <tbody class="tbody">
         <tr>
          <td>maxAwaitTimeMS</td>
          <td><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></td>
          <td>
           <p class="para">
            Entero positivo que indica el límite de tiempo en milisegundos para
            que el servidor bloquee una operación getMore si no hay datos disponibles. Esta opción solo debe ser utilizada
            en conjunción con los comandos que devuelven un cursor a cola (por ejemplo,
            <a href="https://www.mongodb.com/docs/manual/changeStreams/" class="link external">&raquo;&nbsp;Change Streams</a>).
           </p>
          </td>
         </tr>

        </tbody>
       
      </table>

     </p>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 errors" id="refsect1-mongodb-driver-command.construct-errors">
  <h3 class="title">Errores/Excepciones</h3>
  <ul class="simplelist">
   <li>Lanza una excepción <span class="classname"><strong class="classname">MongoDB\Driver\InvalidArgumentException</strong></span> en caso de error durante el análisis de un argumento.</li>
  </ul>
 </div>


 <div class="refsect1 changelog" id="refsect1-mongodb-driver-command.construct-changelog">
  <h3 class="title">Historial de cambios</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Versión</th>
       <th>Descripción</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>PECL mongodb 1.4.0</td>
       <td>
        <p class="para">
         Adición de un segundo argumento <code class="parameter">commandOptions</code>, que
         soporta la opción <code class="literal">&quot;maxAwaitTimeMS&quot;</code>.
        </p>
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-mongodb-driver-command.construct-examples">
  <h3 class="title">Ejemplos</h3>
  <div class="example" id="example-2">
   <p><strong>Ejemplo #1 Ejemplo con <span class="function"><strong>MongoDB\Driver\Command::__construct()</strong></span></strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Manager</span><span style="color: #007700">(</span><span style="color: #DD0000">"mongodb://localhost:27017"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$command </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Command</span><span style="color: #007700">(array(</span><span style="color: #DD0000">"buildinfo" </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">));<br /><br />try {<br />    </span><span style="color: #0000BB">$cursor </span><span style="color: #007700">= </span><span style="color: #0000BB">$manager</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">executeCommand</span><span style="color: #007700">(</span><span style="color: #DD0000">"admin"</span><span style="color: #007700">, </span><span style="color: #0000BB">$command</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">$response </span><span style="color: #007700">= </span><span style="color: #0000BB">$cursor</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">toArray</span><span style="color: #007700">()[</span><span style="color: #0000BB">0</span><span style="color: #007700">];<br />} catch(</span><span style="color: #0000BB">MongoDB\Driver\Exception $e</span><span style="color: #007700">) {<br />    echo </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">(), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />    exit;<br />}<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$response</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>Resultado del ejemplo anterior es similar a:</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">array(13) {
  [&quot;version&quot;]=&gt;
  string(14) &quot;2.8.0-rc2-pre-&quot;
  [&quot;gitVersion&quot;]=&gt;
  string(62) &quot;b743d7158f7642f4da6b7eac8320374b3b88dc2e modules: subscription&quot;
  [&quot;OpenSSLVersion&quot;]=&gt;
  string(25) &quot;OpenSSL 1.0.1f 6 Jan 2014&quot;
  [&quot;sysInfo&quot;]=&gt;
  string(104) &quot;Linux infant 3.16.0-24-generic #32-Ubuntu SMP Tue Oct 28 13:07:32 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49&quot;
  [&quot;loaderFlags&quot;]=&gt;
  string(91) &quot;-fPIC -pthread -Wl,-z,now -rdynamic -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,-E&quot;
  [&quot;compilerFlags&quot;]=&gt;
  string(301) &quot;-Wnon-virtual-dtor -Woverloaded-virtual -std=c++11 -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -pipe -Werror -O3 -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-but-set-variable -fno-builtin-memcmp -std=c99&quot;
  [&quot;allocator&quot;]=&gt;
  string(8) &quot;tcmalloc&quot;
  [&quot;versionArray&quot;]=&gt;
  array(4) {
    [0]=&gt;
    int(2)
    [1]=&gt;
    int(8)
    [2]=&gt;
    int(0)
    [3]=&gt;
    int(-8)
  }
  [&quot;javascriptEngine&quot;]=&gt;
  string(2) &quot;V8&quot;
  [&quot;bits&quot;]=&gt;
  int(64)
  [&quot;debug&quot;]=&gt;
  bool(false)
  [&quot;maxBsonObjectSize&quot;]=&gt;
  int(16777216)
  [&quot;ok&quot;]=&gt;
  float(1)
}</pre>
</div>
   </div>
  </div>

  <div class="example" id="example-3">
   <p><strong>Ejemplo #2 Ejemplo con <span class="function"><strong>MongoDB\Driver\Command::__construct()</strong></span></strong></p>
   <div class="example-contents"><p>
    Los comandos también pueden aceptar opciones, dentro de la estructura normal que se crea para enviar al servidor. Por ejemplo, la opción <code class="literal">maxTimeMS</code> puede ser pasada con la mayoría de los comandos para restringir la duración durante la cual un comando específico puede ejecutarse en el servidor.
   </p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Manager</span><span style="color: #007700">(</span><span style="color: #DD0000">"mongodb://localhost:27017"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$command </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Command</span><span style="color: #007700">(<br />    array(<br />        </span><span style="color: #DD0000">"distinct" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"beer"</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">"key" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"beer_name"</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">"maxTimeMS" </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">10</span><span style="color: #007700">,<br />    )<br />);<br /><br />try {<br />    </span><span style="color: #0000BB">$cursor </span><span style="color: #007700">= </span><span style="color: #0000BB">$manager</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">executeCommand</span><span style="color: #007700">(</span><span style="color: #DD0000">"beerdb"</span><span style="color: #007700">, </span><span style="color: #0000BB">$command</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">$response </span><span style="color: #007700">= </span><span style="color: #0000BB">$cursor</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">toArray</span><span style="color: #007700">()[</span><span style="color: #0000BB">0</span><span style="color: #007700">];<br />} catch(</span><span style="color: #0000BB">MongoDB\Driver\Exception\Exception $e</span><span style="color: #007700">) {<br />    echo </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">(), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />    exit;<br />}<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$response</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>Resultado del ejemplo anterior es similar a:</p></div>
   <div class="example-contents screen"><br />
    operation exceeded time limit<br />
   </div>
  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-mongodb-driver-command.construct-seealso">
  <h3 class="title">Ver también</h3>
  <ul class="simplelist">
   <li><span class="methodname"><a href="mongodb-driver-manager.executecommand.php" class="methodname" rel="rdfs-seeAlso">MongoDB\Driver\Manager::executeCommand()</a> - Ejecuta un comando de base de datos</span></li>
   <li><span class="classname"><a href="class.mongodb-driver-cursor.php" class="classname">MongoDB\Driver\Cursor</a></span></li>
  </ul>
 </div>


</div><?php manual_footer($setup); ?>