Написание оператора вставки MongoDB - PullRequest
2 голосов
/ 31 марта 2012

Я довольно новичок в PHP и MongoDB, так что было бы очень полезно, если бы я получил несколько предложений от вас, ребята. Я часами возился с этим циклом, но безрезультатно.

Это примерно мой вклад:

while ($currentCol<$maxCols){
    $obj = array( $currentarray[0][$currentCol] => $currentarray[$currentRow][$currentCol]);
    $collection->insert($obj);
    echo $testing;
    echo "<br />";
    print_r ($obj);
    echo "<br />";
    $testing++;
    $currentCol++;
}

Это выводит:

1
Array ( [President ] => George Washington [_id] => MongoId Object ( [$id] => 4f774d924f62e5ca37000160 ) ) 
2
Array ( [Wikipedia Entry] => http://en.wikipedia.org/wiki/George_Washington [_id] => MongoId Object ( [$id] => 4f774d934f62e5ca37000161 ) ) 
3
Array ( [Took office ] => 30/04/1789 [_id] => MongoId Object ( [$id] => 4f774d934f62e5ca37000162 ) ) 
4
Array ( [Left office ] => 4/03/1797 [_id] => MongoId Object ( [$id] => 4f774d934f62e5ca37000163 ) ) 
5
Array ( [Party ] => Independent [_id] => MongoId Object ( [$id] => 4f774d934f62e5ca37000164 ) ) 
6
Array ( [Portrait] => GeorgeWashington.jpg [_id] => MongoId Object ( [$id] => 4f774d934f62e5ca37000165 ) ) 
7
Array ( [Thumbnail] => thmb_GeorgeWashington.jpg [_id] => MongoId Object ( [$id] => 4f774d934f62e5ca37000166 ) ) 
8
Array ( [Home State] => Virginia [_id] => MongoId Object ( [$id] => 4f774d934f62e5ca37000167 ) ) 

Последняя проблема, с которой я столкнулся, заключается в том, чтобы фактически объединить все в один оператор вставки вместо нескольких операторов вставки, как вы видели выше. Поэтому вместо генерации 8 операторов вставки я пытаюсь заставить его сделать 1 оператор вставки.

Есть предложения?

1 Ответ

1 голос
/ 31 марта 2012

MongoDB не имеет транзакций, а вставки быстрые и легкие, поэтому нет особой причины пытаться пакетировать их для такого небольшого количества. Хотя я не использовал его ранее, есть способ BatchInsert , который вы можете попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...