设为首页 加入收藏

TOP

PHP操作MongoDB技术总结(四)
2015-11-21 01:45:36 来源: 作者: 【 】 浏览:5
Tags:PHP 操作 MongoDB 技术 总结
** //格式=-->(“mongodb://用户名:密码 @地址:端口/默认指定数据库”,参数) $conn = new Mongo(); //可以简写为 //$conn=new Mongo(); #连接本地主机,默认端口. //$conn=new Mongo(“172.21.15.69″); #连接远程主机 //$conn=new Mongo(“xiaocai.loc:10086″); #连接指定端口远程主机 //$conn=new Mongo(“xiaocai.loc”,array(“replicaSet”=>true)); #负载均衡 //$conn=new Mongo(“xiaocai.loc”,array(“persist”=>”t”)); #持久连接 //$conn=new Mongo(“mongodb://sa:123@localhost”); #带用户名密码 //$conn=new Mongo(“mongodb://localhost:27017,localhost:27018″); #连接多个服务器 //$conn=new Mongo(“mongodb:///tmp/mongo-27017.sock”); #域套接字 //$conn=new Mongo(“mongodb://admin_miss:miss@localhost:27017/test”,array(‘persist’=>’p',”replicaSet”=>true)); #完整 //详细资料:http://www.php.net/manual/en/mongo.connecting.php //************************* //** 选择数据库与表 **// //************************* $db=$conn->mydb; #选择mydb数据库 //$db=$conn->selectDB(“mydb”); #第二种写法 $collection=$db->column; #选择集合(选择’表’) //$collection=$db->selectCollection(‘column’); #第二种写法 //$collection=$conn->mydb->column; #更简洁的写法 //注意:1.数据库和集合不需要事先创建,若它们不存在则会自动创建它们. // 2.注意错别字,你可能会无意间的创建一个新的数据库(与原先的数据库混乱). //************************* //** 插入文档 **// //************************* //**向集合中插入数据,返回bool判断是否插入成功. **/ $array=array(‘column_name’=>’col’.rand(100,999),’column_exp’=>’xiaocai’); $result=$collection->insert($array); #简单插入 echo “新记录ID:”.$array['_id']; #MongoDB会返回一个记录标识 var_dump($result); #返回:bool(true) //**向集合中安全插入数据,返回插入状态(数组). **/ $array=array(‘column_name’=>’col’.rand(100,999),’column_exp’=>’xiaocai2′); $result=$collection->insert($array,true); #用于等待MongoDB完成操作,以便确定是否成功.(当有大量记录插入时使用该参数会比较有用) echo “新记录ID:”.$array['_id']; #MongoDB会返回一个记录标识 var_dump($result); #返回:array(3) { ["err"]=> NULL ["n"]=> int(0) ["ok"]=> float(1) } //**完整的写法 **/ #insert($array,array(‘safe’=>false,’fsync’=>false,’timeout’=>10000)) /* * * * 完整格式:insert ( array $a [, array $options = array() ] ) * insert(array(),array(‘safe’=>false,’fsync’=>false,’timeout’=>10000)) * 参数:safe:默认false,是否安全写入 * fsync:默认false,是否强制插入到同步到磁盘 * timeout:超时时间(毫秒) * * 插入结果:{ “_id” : ObjectId(“4d63552ad549a02c01000009″), “column_name” : “col770″, “column_exp” : “xiaocai” } * ’_id’为主键字段,在插入是MongoDB自动添加. * * 注意:1.以下两次插入的为同一条记录(相同的_id),因为它们的值相同。 * $collection->insert(array(‘column_name’=>’xiaocai’)); * $collection->insert(array(‘column_name’=>’xiaocai’)); * 避免 * $collection->insert(array(‘column_name’=>’xiaocai’),true); * try { * $collection->insert(array(‘column_name’=>’xiaocai’),true); * }catch(MongoCursorException $e){ * echo “Can’t save the same person twice!\n”; * } * * 详细资料:http://www.php.net/manual/zh/mongocollection.insert.php * * */ //************************* //** 更新文档 **// //************************* //** 修改更新 **/ $where=array(‘column_name’=>’col123′); $newdata=array(‘column_exp’=>’GGGGGGG’,'column_fid’=>444); $result=$collection->update($where,array(‘$set’=>$newdata)); #$set:让某节点等于给定值,类似的还有$pull $pullAll $pop $inc,在后面慢慢说明用法 /* * 结果: * 原数据 * {“_id”:ObjectId(“4d635ba2d549a02801000003″),”column_name”:”col123″,”column_exp”:”xiaocai”} * 被替换成了 * {“_id”:ObjectId(“4d635ba2d549a02801000003″),”column_name”:”col
首页 上一页 1 2 3 4 5 6 下一页 尾页 4/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇分布式缓存GemFire架构介绍 下一篇【MongoDB】-用户权限设置详解

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: