PHP MongoDb 插入删除所有旧记录

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

最佳答案

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

要更新:

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

语法

db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)

就这样

关于PHP MongoDb 插入删除所有旧记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39095271/

相关文章:

mongodb - Mongoose/MongoDB 副本集使用辅助读取

php - Mongo Map Reduce 第一次

PHP模型(MySQL)设计问题

javascript - 无法将 JSON 从服务获取到 angularJs 路由中

php - 如何在使用 PHP 和 MYSQL 的搜索中省略 "THE"

php - 从 PHP 中的盐生成可验证的非连续整数

arrays - MongoDB展开多个数组

ruby-on-rails - ember-data DS.attr 的动态数量

php - Laravel:无法对​​有效负载进行 JSON 编码。错误代码:5

PHP Mongo:注意:Mongo::__construct(): 解析服务器