MongoCollection::aggregate
MongoCollection::__construct
MongoCollection
PHP Manual

# MongoCollection::batchInsert

(PECL mongo >=0.9.0)

MongoCollection::batchInsert — Inserts multiple documents into this collection

### Opis

public mixed MongoCollection::batchInsert ( array `$a` [, array `$options` = array() ] )

### Parametry

`a`

  An array of arrays.

`options`

  Options for the inserts.

  - "w"

    See WriteConcerns. The default value for MongoClient is 1.

  - "fsync"

    Boolean, defaults to `FALSE`. Forces the insert to be synced to disk before returning success. If `TRUE`, an acknowledged insert is implied and will override setting w to 0.

  - "timeout"

    Integer, defaults to MongoCursor::$timeout. If "safe" is set, this sets how long (in milliseconds) for the client to wait for a database response. If the database does not respond within the timeout period, a MongoCursorTimeoutException will be thrown.

  - "continueOnError"

    Boolean, defaults to `FALSE`. If set, the database will not stop processing a bulk insert if one fails (eg due to duplicate IDs). This makes bulk insert behave similarly to a series of single inserts, except that calling MongoDB::lastError() will have an error set if any insert fails, not just the last one. If multiple errors occur, only the most recent will be reported by MongoDB::lastError().

  - "safe"

    Deprecated. Please use the WriteConcern w option.

### Zwracane wartości

If the w parameter is set to acknowledge the write, returns an associative array with the status of the inserts ("ok") and any error that may have occured ("err"). Otherwise, returns `TRUE` if the batch insert was successfully sent, `FALSE` otherwise.

### Błędy/Wyjątki

Throws MongoCursorException if the "w" option is set and the write fails.

Throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.

### Rejestr zmian

Wersja | Opis
--- | ---
1.2.7 | Added "continueOnError" option.
1.0.9 | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option.
1.0.5 | Added `options` parameter.

### Przykłady

Przykład #1 MongoCollection::batchInsert() example

Batch insertion is a quick way to add many elements to the database at once

`<?php
$users = array();
for ($i = 0; $i<100; $i++) {
$users[] = array('username' => 'user'.$i, 'i' => $i);
}
$mongo = new MongoClient();
$collection = $mongo->my_db->users;
$collection->drop();
$collection->batchInsert($users);
foreach ($users as $user) {
echo $user['_id']."\n"; // populated with instanceof MongoId
}
$users = $collection->find()->sort(array('i' => 1));
foreach ($users as $user) {
var_dump($user['username']);
}
?>`

Powyższy przykład wyświetli coś podobnego do:

    4bf43ac68ead0e1971000000
    4bf43ac68ead0e1971010000
    4bf43ac68ead0e1971020000
    ...
    string(5) "user1"
    string(5) "user2"
    string(5) "user3"
    ...

Przykład #2 MongoCollection::batchInsert() example with ignoring errors

`<?php
$con = new Mongo;
$db = $con->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'), // same _id as above
'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']);
}
?>`

Powyższy przykład wyświetli coś podobnego do:

    string(3) "ONE"
    string(3) "TWO"
    string(4) "FOUR"

### Zobacz też:

- MongoCollection::insert() - Inserts an array into the collection
- MongoCollection::update() - Update records based on a given criteria
- MongoCollection::find() - Querys this collection, returning a MongoCursor for the result set
- MongoCollection::remove() - Remove records from this collection
- MongoDB core docs on » insert.

MongoCollection::aggregate
MongoCollection::__construct
MongoCollection
PHP Manual