您的位置:首页 > 数据库 > Mongodb

PHP之mongodb学习

2016-02-18 13:36 579 查看
<?php

//连接别的类,用来调用在别的类里定义的参数

include 'custon.php';

//连接DBHOST这个接口对应的芒果数据库DBHOST对应的数据形式为(接口:端口),其中端口默认为27017。

$con= new MongoClient(DBHOST);

//判断是否连接上

if (!$con)

{

die('Could not connect: ' . mysql_error());

}

//连接项目所用数据库、如果没有,他会自动建立一个名字为fei的数据库

$db=$con->fei;

//连接项目数据库里索要用到的数据表,如果没有这张表,他会自动新建一张

$collection=$db->test;

//增;insert

$data=array("name"=>"大飞哥",'age'=>'33','sex'=>'男');

//$result=$collection->insert($data); #简单插入

//插入后系统会自动生成一个_id

//echo "插入数据的ID是".$data["_id"];

//删;remove

//根据标签参数删除。这个方法会删除在这个数据表里所有带'tel'=>'123456789'这个参数的数据,但_id这个参数不能直接使用

//$collection->remove(array('tel'=>'123456789'));

//根据_id删除,_id是系统自动生成的ID

//$id = new MongoId('56c433a324a739dc0600006b');

//$collection->remove(array('_id'=>(object)$id));

//改;update

//增加、修改参数。对已有的的表增加一个标签,也可以直接对已有的参数进行修改

//$newda=array("tel"=>"123456789");

//$result=$collection->update($data,array('$set'=>$newda));

//替换,相当于把上一张表的数据删除了又重新补充了另外的数据

//$newdata=array("user_age"=>"22","tel"=>"123456789");

//$result=$collection->update($data,$newdata);

//批量替换;'multiple'=>true

//要动哪组数据必须填写一个它有的数据如;"name"=>"二飞哥"必须是在那个表里有的一个参数,相当于索引 要不他找不到

//$newdata=array("sex"=>"男","money"=>10086);

//$result=$collection->update($data,array('$set'=>$newdata),array('multiple'=>true));

//数据自动累加;'$inc'=>array('money'=>-5)

//目前只会对最早的数据起作用。

//$newdata=array('name'=>'大飞哥');

//$result=$collection->update($data,array('$set'=>$newdata,'$inc'=>array('money'=>-5)));

//查;count、find

//注意,查询完后显示数据的时候必须用foreach循环,不然报错

//count;查数据个数

//echo 'count:'.$collection->count()."<br>"; #表内全部 数据个数

//echo 'count:'.$collection->count(array('age'=>'11'))."<br>"; #加上条件 ,查询符合条件的数据个数

//$gt为大于、$gte为大于等于、$lt为小于、$lte为小于等于、$ne为不等于、$exists存在

//注意;后面的选择条件的参数要注意数据类型'$gt'=>'20'和'$gt'=>20是两码事

//echo 'count:'.$collection->count(array('age'=>array('$gt'=>'20','$lte'=>'40')))."<br>"; #大于20小于等于40

//limit;极限 最多显示多少, skip;跳过忽略第几条数据,count;计数(没弄懂这个是干什么的,但是不写会报错)

//echo 'count:'.$collection->find()->limit(3)->skip(0)->count(true)."<br>"; #获得实际返回的结果数

//find;查具体数据

//查所有find(),后面可以不写

//$cursor = $collection->find()->snapshot();

//foreach ($cursor as $id => $value) {

// echo "$id: ";

// var_dump($value);

// echo "<br>";

//}

//查一条数据,这条数据是数据表里的第一条数据

//$cursor = $collection->findOne();

//foreach ($cursor as $id => $value) {

// echo "$id: ";

// var_dump($value);

// echo "<br>";

//}

//排除列 false为不显示

//$cursor = $collection->find()->fields(array("age"=>false,"tel"=>false));

//foreach ($cursor as $id => $value) {

// echo "$id: ";

// var_dump($value);

// echo "<br>";

//}

#指定列 true为显示 如果没有这个参数,那就只显示id

//$cursor = $collection->find()->fields(array("name"=>true));

//foreach ($cursor as $id => $value) {

// echo "$id: ";

// var_dump($value);

// echo "<br>";

//}

//根据指定条件查找

//$where=array('name'=>array('$exists'=>true),'age'=>array('$ne'=>'0','$lt'=>'20','$exists'=>true));

//$cursor = $collection->find($where);

//foreach ($cursor as $id => $value) {

// echo "$id: ";

// var_dump($value);

// echo "<br>";

//}

//选择性的排除前多少条数据

//$cursor = $collection->find()->limit(5)->skip(0);

//foreach ($cursor as $id => $value) {

// echo "$id: ";

// var_dump($value);

// echo "<br>";

//}

//排序 ;sort

//$cursor = $collection->find()->sort(array('age'=>1)); #-1表示降序 1表示升序,参数的先后影响排序顺序

//没弄明白下面这两个方法有什么意义

//$cursor = $collection->ensureIndex(array('age' => 1,'money'=>-1),array('background'=>true)); #索引的创建放在后台运行(默认是同步运行)

//$cursor = $collection->ensureIndex(array('age' => 1,'money'=>-1),array('unique'=>true)); #该索引是唯一的

//foreach ($cursor as $id => $value) {

// echo "$id: ";

// var_dump($value);

// echo "<br>";

//}

//取得查询结果

$cursor = $collection->find();

$array=array();

foreach ($cursor as $id => $value) {

$array[]=$value;

}

var_dump($array);

#关闭连接

//$con->close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: