PHP操作mongoDB 笔记
本文内容纲要:
转自http://blog.csdn.net/black_ox/article/details/22678747
命令也可以在参考http://www.jb51.net/article/51601.htm
这个文档也不错http://www.cnblogs.com/yuechaotian/archive/2013/02/04/2891457.html
mongo操作php官方网站http://php.net/manual/zh/mongo.core.php
这个文章没有看懂,感觉很高大上http://blog.csdn.net/moqiang02/article/details/39493415
php安装mongo流程都差不多,不难。如果php没有正常安装扩展。那90%以上可能是版本不对应。多找多试试就好了
连接mongo
$connection=newMongoClient();//连接到localhost:27017
$connection=newMongoClient("mongodb://example.com");//连接到远程服务器(使用默认端口:27017)
$connection=newMongoClient("mongodb://example.com:65432");//链接到远程服务器,使用自定义的端口
这个驱动使用了持久连接,并会在下次试图链接到同一服务器时重用它。
验证
//指定用户名和密码连接URI(首选)
$m=newMongoClient("mongodb://${username}:${password}@localhost");
//指定的用户名和密码,选择array
$m=newMongoClient("mongodb://localhost",array("username"=>$username,"password"=>$password));
//在连接URI中指定身份验证数据库(首选)
$m=newMongoClient("mongodb://${username}:${password}@localhost/myDatabase");
//通过指定的数据库身份验证选项array
$m=newMongoClient("mongodb://${username}:${password}@localhost",array("db"=>"myDatabase"));
多个服务器
$m=newMongoClient("mongodb://mongos1.example.com:27017,mongos2.example.com:27017"));
CURD总结
$connection=newMongoClient();//mongo连接
$db=$connection->dbname->runoob;//选择数据库->选择集合
$db->find();//查找集合所有数据
$db->findOne();//查找一条数据
$db->find(array(),array("a"=>1,"b"=>1));//返回a,b字段
$db->find(array("age"=>33));//查找whereage=33的数据
$db->find(array("age"=>array('$gt'=>33)));//$gt:大于$gte:大于等于$lt:小于$lte:小于等于$ne:不等于
$db->find(array("number"=>array('$gt'=>1,'$lt'=>9)));//大于1,小于9
$db->find(array("number"=>array('$in'=>array(1,2,9))));//等于哪些值
$db->find(array("number"=>array('$nin'=>array(1,2,9))));//不等于哪些值
$db->find(array('$or'=>array(array('number'=>2),array('number'=>9)));//或
$db->find(array("name"=>newMongoRegex("/Joe/")));//nameLIKE"%Joe%"
$db->find()->limit(10)->skip(20);//LIMIT10SKIP20
$db->find(array("z"=>3))->explain();//explain
$db->sort(array("name"=>1));//1是正序ASC-1是倒序DESC
$db->count();//集合的总数
$db->count({"a"=>2});//a=2集合的总数
$db->find()->limit(5)->skip(0)->count(true)//返回条件查询的总数
$db->update(array("b"=>"q"),array("a"=>1));//将整条更新为{a:1}其他的数据都会消失
$db->update(array("b"=>"q"),array('$set'=>array("a"=>1)));//$set只更新数据中a字段
$db->update(array("b"=>"q"),array('$inc'=>array("a"=>2)));//UPDATEdbnameSETa=a+2WHEREb='q'
$db->remove(array("z"=>"abc"));//删除字段z='abc'的数据
$db->remove(array("z"=>"abc"),array("justOne"=>true));//justOne删除一条
批量添加文档:(只能循环一条一条加)
for($i=0;$i<100;$i++){
$collection->insert(array('i'=>$i,"field{$i}"=>$i*2));
}
返回结果处理
$cursor=$collection->find();
foreach($cursoras$id=>$value){
var_dump($value);
}
本文内容总结:
原文链接:https://www.cnblogs.com/zhaoyang-1989/p/7644182.html