如何使用php向MongoDB文档添加一个字段?

时间:2016-07-23 19:17:44

标签: php mongodb

我正在尝试将图像上传到现有文档。(通过添加一个字段。)我通过电子邮件输入找到我的文档。 这是我的代码: -

<?php

 $errors = array();
 $data = array();
 $_POST = json_decode(file_get_contents('php://input'), true);

 $name=$__POST["mn"];
 $email=$__POST["me"];
 $i2u=$_POST["image2upload"];

 $binary = base64_decode($i2u);
 $filepath = 'images/newuploads/'.$name.'/'.$name.'.jpg';
 $imgurl = 'http://localhost/portfolio3/php/'.$filepath;
 file_put_contents($filepath, $binary);

 $m = new MongoClient();
 $db = $m->mydb2->mycol2;
 $foundRecord = $db->find(array('Email'=>$email));      

 $foundRecord->update(array(‘$set’ => array(‘uploadpic1’ => new MongoBinData(file_get_contents($imgurl)))));

?>

如何使用php向MongoDB文档添加一个字段?

1 个答案:

答案 0 :(得分:0)

首先,如果您只搜索一条记录,则应使用$db->findOne

然后您可以执行以下操作:

 $foundRecord = $db->findOne(array('Email'=>$email));
 $foundRecord['uploadpic1'] = new MongoBinData(file_get_contents($imgurl);
 $db->save($foundRecord);

由于您使用了findOne,因此在使用$db->save($foundRecord);

时,它会保存到提取的记录,而不是创建新记录

否则,如果您想使用update,则需要在其中指定查询:

$db->update(array('Email'=>$email), array('$set' => array('uploadpic1' => new MongoBinData(file_get_contents($imgurl)))));