2016-08-23 4 views
2

Я вставляю несколько записей из файла csv в mongodb.PHP MongoDb insert удаляет всю старую запись

Записи вставляется, но всякий раз, когда я бег сценария, все предыдущих записи будут удалены и только новые записи оставили

$connection= new \MongoClient(); 
$db = $connection->selectDB('mydb'); 
$collection = $db->selectCollection('users'); 

while (($data = fgetcsv($file, 0, ",")) !==FALSE) { 
try{ 
     $userData['_id'] = new \MongoId(); 
     $userData['name'] = $data['0']; 
     $userData['email'] = $data['1']; 
     $userData['extra_info'] = $data['2']; 


     $collection->insert($userData); 
    }catch(MongoCursorException $e){ 
     // This is where I caught the duplicate id 
     print_r($e->doc['err']); 

     // Kill the procedure 
     die(); 
    } 
} 
+0

Где $ сбор и $ parsedData пришел? – lippoliv

+0

Можете ли вы также опубликовать версию PHP и версию MongoDB? – lippoliv

ответ

0

Вы используете вставку, пожалуйста, используйте метод обновления для резервирования предыдущих записей тоже ...

обновить:

MongoDB» s update() и save() используются для обновления документа в коллекции. Метод update() обновляет значения в существующем документе, в то время как метод save() заменяет существующий документ документом, переданным в методе save().

Синтаксис

db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA) 

Это все

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