PHP MongoDb insert删除所有旧记录

时间:2016-08-23 07:46:39

标签: php mongodb mongodb-php

我将csv文件中的多个记录插入到mongodb中。

记录已插入,但每当我运行脚本时,所有以前的记录都会被删除,只剩下新记录

$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();
    }
}

1 个答案:

答案 0 :(得分:0)

您正在使用插入,请使用更新方法来预订以前的记录...

更新:

MongoDB的update()和save()方法用于将文档更新到集合中。 update()方法更新现有文档中的值,而save()方法用save()方法中传递的文档替换现有文档。

<强>语法

db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)

这就是全部