MongoCollection::batchInsert Inerta múltiples documentos en esta colección &reftitle.description; public mixedMongoCollection::batchInsert arraya arrayoptionsarray() &reftitle.parameters; a Un array de arrays u objetos. Si se utilizan objetos, estos no pueden tener propiedades protegidas o privadas. Si los documentos a insertar no poseen una clave o propiedad _id, se creará una nueva instancia de MongoId y se le asignará. Véase MongoCollection::insert para información adicional sobre este comportamiento. options Un array de opciones para las operaciones de inserción de lotes. Las opciones disponibles actualmente son: "continueOnError" Booleano, por omisión es &false;. Si se establece, la base de datos no parará de procesar un volumen de inserciones si una falla (p.ej. debido a IDs duplicados). Esto hace que el volumen de inserciones se comporte de manera similar a una insercioón única, excepto que con la llamada a MongoDB::lastError se obtendrá un error establecido si cualquier inserción falla, no sólo la primera. Si ocurren varios errores, sólo se informará de más reciente, mediante MongoDB::lastError. Observe que continueOnError afecta únicamentea los errores del lado del servidor. Si se intenta insertar un documento que tiene errores (por ejemplo que contiene una clave con un nombre vacío), el documento no será transferido a la base de datos, ya que el controlador detecta este error y no continúa. continueOnError no tiene efecto sobre errores detectados por el controlador en los documentos. &mongo.writes.parameters.fsync; &mongo.writes.parameters.journal; &mongo.writes.parameters.sockettimeoutms; &mongo.writes.parameters.writeconcern; &mongo.writes.parameters.writeconcerntimeoutms; Las siguientes opciones están obsoletas y no deberían usarse más: &mongo.writes.parameters.safe; &mongo.writes.parameters.timeout; &mongo.writes.parameters.writeconcerntimeout; &reftitle.returnvalues; Si el parámetro w está establecido para aceptar la escritura, devuelve un array asociativo con el estado de las inserciones ("ok") y cualquier error que pudiera ocurrir ("err"). De lo contrario, devuelve &true; si la inserción por lotes fue enviada con éxito, si no, &false;. &reftitle.errors; Lanza una MongoException si cualquier documento insertado está vacío o si contiene claves de longitud cero. Intentar insertar un objeto con propiedades protegidas o privadas causará un error de clave de longitud cero. &mongo.errors.exceptions.writeconcern; &reftitle.changelog; &Version; &Description; 1.5.0 Se añadió la opción "wTimeoutMS", la cual remplaza a "wtimeout". Emite un error de nivel E_DEPRECATED cuando se usa "wtimeout". Se añadió la opción "socketTimeoutMS", la cual remplza a "timeout". Emite un error de nivel E_DEPRECATED cuando se usa "timeout". Emite un error de nivel E_DEPRECATED al usar "safe". 1.3.4 Se añadió la opción "wtimeout". 1.3.0 Se añadió la opción "w". 1.2.7 Se añadió la opción "continueOnError". 1.0.9 Se añadió la capacidad de pasar números enteros a la opción "safe", que anteriormente sólo aceptaba booleanos. Se añadió la opción "fsync". 1.0.5 Se añadió el parámetro options. &reftitle.examples; Ejemplo de <function>MongoCollection::batchInsert</function> Las inserciones por lotes son una forma rápida de añadir muchos elementos a la base de datos de una sola vez 'usuario'.$i, 'i' => $i); } $mongo = new MongoClient(); $collection = $mongo->my_db->usuarios; $collection->drop(); $collection->batchInsert($usuarios); foreach ($usuarios as $usuario) { echo $usuario['_id']."\n"; // completado con instanceof MongoId } $usuarios = $collection->find()->sort(array('i' => 1)); foreach ($usuarios as $usuario) { var_dump($usuario['nombreUsuario']); } ?> ]]> &example.outputs.similar; Ejemplo de <function>MongoCollection::batchInsert</function> ignorando errores demo; $doc1 = array( '_id' => new MongoId('4cb4ab6d7addf98506010001'), 'id' => 1, 'desc' => "ONE", ); $doc2 = array( '_id' => new MongoId('4cb4ab6d7addf98506010002'), 'id' => 2, 'desc' => "TWO", ); $doc3 = array( '_id' => new MongoId('4cb4ab6d7addf98506010002'), // el mismo _id que el anteior 'id' => 3, 'desc' => "THREE", ); $doc4 = array( '_id' => new MongoId('4cb4ab6d7addf98506010004'), 'id' => 4, 'desc' => "FOUR", ); $c = $db->selectCollection('c'); $c->batchInsert( array($doc1, $doc2, $doc3, $doc4), array('continueOnError' => true) ); $docs = $c->find(); foreach ($docs as $doc) { var_dump($doc['desc']); } ?> ]]> &example.outputs.similar; &reftitle.seealso; MongoCollection::insert MongoCollection::update MongoCollection::find MongoCollection::remove Documentación de MongoDB sobre insert.