2016-08-23 1 views
2

Ich füge mehrere Datensätze aus einer CSV-Datei in Mongodb.PHP MongoDb einfügen löscht alle alten Datensatz

Die Datensätze eingefügt werden, aber wenn ich das Skript leite alle bisherigen Rekorde wird und nur die neuen Datensätze werden links

$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

Wo $ Sammlung und $ parsedData kam? – lippoliv

+0

Können Sie auch welche PHP Version und welche MongoDB-Version? – lippoliv

Antwort

0

Sie verwenden Einsatz, bitte Update-Methode gelöscht verwenden für zu früheren Aufzeichnungen der Reservierung ...

zu aktualisieren:

MongoDB‘ Mit den Methoden update() und save() wird das Dokument in eine Sammlung aktualisiert. Die Methode update() aktualisiert die Werte im vorhandenen Dokument, während die Methode save() das vorhandene Dokument durch das in der Methode save() übergebene Dokument ersetzt.

Syntax

db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA) 

Das ist alles