php操作MONGODB

一、链接数据库


$conn = new Mongo("mongodb://IP:PORT/DBname:DBPWD");      //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如    
$db=$conn->selectDB("DBName");
$collection=$db->selectCollection('tablename');//这里叫做tablename便于理解,其实mongo叫集合
$dbs = $conn->listDBs();//获得一个包含db信息的数组
//var_dump($dbs);
$tbs=$db->listCollections();//获得一个包含集合的数组
foreach($tbs as $val){
 echo "tb1:$val<br>";
}
echo "count:".$collection->count();
echo "<br>";
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
$cursor = $collection->find();
$rs=$cursor->sort(array("key"=>1))->skip(10)->limit(20);//skip相当于sql的start,limit相当于mysql的offset
echo "<table><tr><td align='center'>id</td><td align='center'>width</td><td align='center'>height</td><td align='center'>url</td><td align='center'>from</td><td align='center'>key</td><td align='center'>title</td></tr>";
foreach($rs as $val){
	//var_dump($val);
	echo "<tr><td>".$val["_id"]."</td><td>".$val["width"]."</td><td>".$val["height"]."</td><td>".$val["url"]."</td><td>".$val["from"]."</td><td>".$val["key"]."</td><td>".$val["title"]."</td></tr>";
	//var_dump($val);
}
echo "</table>";


二、插入数据

$collection=$db->selectCollection('grppic');//MONGODB不用建立集合(表),也没有表结构
$doc = array(
	'title' =>  'title',
	'thumb' => 'thumb',
	//可以自动根据数据的大小设定每个记录
	'urls'=> (object)array("1.jpg","2.jpg","3.jpg","4.jpg")
);
//$cord = array('title' => 'title', 'thumb' => 'thumb','url'=>"aaaaa","title"=>"inserted");
$collection->insert($doc);
//echo $doc['_id'];
//返回最后一次插入的$id值
//更新操作
//如下的数字ID也就是返回的$id的值

三、修改数据

$id=new MongoId("5271c4f0da466aec0c000000");//每条插入的记录系统都会赋予一个$id,通过find可以知道这个值
$where=array('_id'=>(object)$id);
$newdata=array('urls'=> (object)array("a.jpg","b.jpg"));
$result=$collection->update($where,array('$set'=>$newdata));
//MongoDB也支持批量更新,与关系型数据库类似,可以更新给定条件的所有文档,如果想这么做的话,就需要设置options的multiple的值为true.
//$result=$collection->update($where,array('$set'=>$newdata),array('multiple'=>true));

$cursor=$collection->find();
while($cursor->hasNext()) {
    var_dump($cursor->getNext());
}

四、删除数据

//$collection->remove();//清空数据表
//$collection->remove(array('_id' => new MongoId($id))); //删除某记录
//$collection->remove(array('genre' =>'drama'),array('justOne' => True));//加了justOne的参数,则只删除符合条件的一条记录,其他不删除//$collection->drop();//drop效率比remove高

你可能感兴趣的:(php操作MONGODB)