我有一个Android应用程序,它将json
数据发送到PHP脚本.PHP脚本必须将数据保存到MongoDB中.
当我插入数据时,MongoDB将此数据视为字符串.
$conn = new Mongo('mongodb://127.0.0.1:27017');
// access database
$db = $conn->Data;
// access collection
$collection = $db->Collection;
$collection->insert($myjson)
Run Code Online (Sandbox Code Playgroud)
我怎么能对MongoDB PHP驱动程序说它已经是一个json
文件?
谢谢
Jus*_*ins 18
PHP MongDB驱动程序接受插入和查询的数组(参见:http://www.php.net/manual/en/mongo.queries.php )
所以你需要将你的JSON转换为数组.
幸运的是,通常这很容易......这是一段代码片段(参见本文),将来自Twitter API的JSON数据插入到数组中,然后插入到MongoDB中:
// Convert JSON to a PHP array
$usertimeline = json_decode($usertimeline);
// Loop array and create seperate documents for each tweet
foreach ($usertimeline as $id => $item) {
$collection->insert($item);
}
Run Code Online (Sandbox Code Playgroud)
注意那里的json_decode()将JSON转换为PHP数组.
对于想要执行此操作但想要更新记录而不是插入新记录的其他人,这里有一个提示。为了让 Justin 的方法发挥作用,我必须确保将每个项目的 _id 对象转换为 MongoId:
// Convert JSON to a PHP array
$usertimeline = json_decode($usertimeline);
// Loop array and create seperate documents for each tweet
foreach ($usertimeline as $id => $item) {
$mongo_id = new MongoId($id);
$item->_id = $mongo_id;
$collection->update(array('_id' => $mongo_id), $item);
}
Run Code Online (Sandbox Code Playgroud)