【问题标题】:PHP MongoDb insert deletes all old recordPHP MongoDb插入删除所有旧记录
【发布时间】:2016-12-29 22:24:50
【问题描述】:

我正在将 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();
    }
}

【问题讨论】:

  • $collection 和 $parsedData 是从哪里来的?
  • 你也可以发布一下 PHP 版本和 MongoDB 版本吗?

标签: php mongodb mongodb-php


【解决方案1】:

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

更新:

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

语法

db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)

就是这样

【讨论】:

    猜你喜欢
    • 2012-08-04
    • 2012-10-01
    • 1970-01-01
    • 2020-08-10
    • 2016-02-29
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多