2012-03-31 4 views
2

Я довольно новичок в PHP и MongoDB, поэтому было бы очень полезно, если бы у меня были некоторые предложения от вас, ребята. Я часами занимаюсь этим циклом, но безрезультатно.Запись инструкции вставки 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 операторов insert, я пытаюсь заставить его сделать 1 инструкцию insert.

Любые предложения?

ответ

1

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

+0

Да, мой код принимает введенный CSV-файл, поэтому он также должен иметь возможность делать большое количество записей. – EGHDK

+0

Я попытался использовать метод BatchInsert, но он, похоже, не изменил его на то, что мне было нужно. Любые другие идеи? – EGHDK

+0

Исходя из вашего вопроса, как я понимаю, вы должны использовать процедуру BatchInsert. Я не понимаю, в чем проблема. – gview

Смежные вопросы