导航:首页 > 编程语言 > phpmongo驱动

phpmongo驱动

发布时间:2023-09-25 12:43:00

php 用mongodb驱动update数据 int怎么变成float了

能比较,int类型会强制转换为float类型比较的
能比较,int类型会强制转换为float类型比较的

② php mongoclient 连接 mongodb ,出现 "No candidate servers found"错误。实在没办法,求大神们解答。

表标PHP已经自带了mongo功能,你就可以操作下面的代码(但是你必须有安装mongodb服务器)一、连接数据库使用下面的代码创建一个数据库链接复制代码代码如下:listDBs());//能打印出数据库数组,看看有几个数据库。?>如图:上图说有一个数据库名字叫local,总大小1个字节,他是空的。看见ok表示运行成功。现在你可以使用$connection链接来操作数据库了选择数据库使用下面的代码来选择一个数据库复制代码代码如下:dbname;?>这里的数据库并不一定是一个已经存在的数据库,如果所选择的数据库不存在,则会新建一个数据库,所以在选择数据库的时候,注意一定要填上正确的数据库名如果拼写错误的话,很有可能会新建一个数据库复制代码代码如下:mybiglongdbname;//做一些事情$db=$connection->mybiglongdbnme;//现在会连上一个新的数据库?>获取一个集合获取一个集合跟选择数据库拥有相同的语法格式复制代码代码如下:baz;//选择数据库$collection=$db->foobar;//选择foobar集合//或者使用更简洁的方式$collection=$connection->baz->foobar;?>插入一个文档多维数组是可以被储存到数据库中的基本单元一个随机的文档可能是这样复制代码代码如下:“MongoDB”,“type”=>“database”,“count”=>1,“info”=>(object)array(“x”=>203,“y”=>102),“versions”=>array(“0.9.7″,“0.9.8″,“0.9.9″));?>注意:你可以嵌套数组与对象,对象与文档在mongodb中几乎是一样的,你可以使用$doc调用一个文档或对象,但是info字段总是一个对象而不是一个文档,本约束适用于所有文档使用MongoCollection::insert()插入一个文档复制代码代码如下:foo->bar;$collection->insert($doc);?>mongodb的insert()、save(),区别主要是:若存在主键,insert()不做操作,而save()则更改原来的内容为新内容。存在数据:{_id:1,"name":"n1"}insert({_id:1,"name":"n2"})会提示错误save({_id:1,"name":"n2"})会把n1改为n2。使用MongoCollection::findOne()查询文档为了证明上面那段代码的数据已经插入到数据库里了,我们进行简单的findOne()操作以得到集合中的第一个文档数据,这种方法只返回一个文档数据,这种方法适用于在你的查询语句的时候只匹配一个文档或者你只关心第一条数据复制代码代码如下:findOne();var_mp($obj);?>你会看到下列结果复制代码代码如下:array(5){["_id"]=>object(MongoId)#6(0){}["name"]string(7)“MongoDB”["type"]=>string(8)“database”["count"]=>int(1)["info"]=>array(2){["x"]=>int(203)["y"]=>int(102)}["versions"]array(3){[0]=>string(5)“0.9.7″[1]=>string(5)“0.9.8″[2]=>string(5)“0.9.9″}}注意_id字段自动加载了文档上,MongoDB储存元素中以_以及$开头的都是供内部使用的添加文档为了做一些更有趣的事情,我们添加简单的文档到集合中,这些文档如下复制代码代码如下:value);?>我们可以使用循环相当有效的插入数据复制代码代码如下:insert(array(“i”=>$i));}?>注意:我们可以插入不同的字段在同一字符集中,在这方面意味着MongoDB拥有非常自由的储存模式在一个集合中计算文档的数量现在我们插入了101个文档(我们用循环插入了100个,之前还插入了一个),我们可以使用count()来看看我们的数据是不是都被插入进去了复制代码代码如下:count();?>这段代码将打印出101MongoCollection::count()也可以查询字段数据使用游标得到集合中的所有文档为了得到集合中的所有文档,我们可以使用MongoCollection::find()方法,find()方法返回一个MongoCursor对象,可以让我们重复得到查询所匹配的的文档复制代码代码如下:find();foreach($cursoras$id=>$value){echo“$id:“;var_mp($value);}?>这样我们会打印出集合中的这101个文档,$id就是文档中的_id字段,$value就是文档本身为查询规定一个标准我们可以通过find()方法得到集合中的文档子集,例如,我们要查询出集合中i字段为71的文档,我们可以使用下列方法复制代码代码如下:71);$cursor=$collection->find($query);while($cursor->hasNext()){var_mp($cursor->getNext());}?>我们将打印如下数据复制代码代码如下:array(2){["_id"]=>object(MongoId)#6(0){}["i"]=>int(71)["_ns"]=>“testCollection”}为查询设定一个范围我们可以通过find()创建一个查询语句以得集合中的一个子集,例如如果我们得到所有”i”>50的文档,我们可以使用如下代码复制代码代码如下:array(‘$gt'=>50));//注意'$gt'两边的单引号$cursor=$coll->find($query);while($cursor->hasNext()){var_mp($cursor->getNext());}?>我们同样可以得到20array(“\$gt”=>20,“\$lte”=>30));$cursor=$coll->find($query);while($cursor->hasNext()){var_mp($cursor->getNext());}?>我们非常容易漏掉$美元符号,你也可以选择你自定义的符号来代替美元符号,选择一个不会在你的建里面出现的符号例如”:”,在php.ini中加上这么一句话复制代码代码如下:mongo.cmd=“:”那么上面的代码就可以替换成复制代码代码如下:array(“:gt”=>20,“:lte”=>30));?>当然你也可以使用ini_set(“mongo.cmd”,“:”)的方法来改变创建一个索引MongoDB支持索引,并且可以很容易的加到一个集合中,你只要指定某个字段为索引就行了,并且还可以指定正序索引(1)与倒序索引(-1)下面的代码为I创建了索引复制代码代码如下:ensureIndex(array(“i”=>1));//在”i”上创建了一个索引$coll->ensureIndex(array(“i”=>-1,“j”=>1));//在”i”上创建了倒序索引在”j”上创建了正序索引?>一个完整的简单例子这个例子展示了如何链接mongodb数据库,如何选择数据库,如何插入数据,如何查询数据,以及关闭数据库链接复制代码代码如下:comedy;$collection=$db->cartoons;//添加一个元素$obj=array("title"=>"CalvinandHobbes","author"=>"BillWatterson");$collection->insert($obj);//修改$newdata=array('$set'=>array("title"=>"CalvinandHobbes"));$collection->update(array("author"=>"caleng"),$newdata);//删除$collection->remove(array('author'=>'caleng'),array("justOne"=>true));//添加另一个元素,使用不同的格式$obj=array("title"=>"XKCD","online"=>true);$collection->insert($obj);//查询所有的集合$cursor=$collection->find();//重复显示结果foreach($cursoras$obj){echo$obj["title"]."\n";}//关闭链接$m->close();?>输出结果为复制代码代码如下:CalvinandHobbesXKCD

③ php 远程连接Mongodb问题

<?php //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如192.168.0.4:27017,如果端口是27017,端口可以省略 $m = new Mongo(); // 选择comedy数据库,如果以前没该数据库会自动创建,也可以用$m->selectDB("comedy"); $db = $m->comedy; //选择comedy里面的collection集合,相当于RDBMS里面的表,也-可以使用 $collection = $db->collection; $db->selectCollection("collection"); //添加一个元素 $obj = array( "title" => "Calvin and Hobbes-".date('i:s'), "author" => "Bill Watterson" ); //将$obj 添加到$collection 集合中 $collection->insert($obj); //添加另一个元素 $obj = array( "title" => "XKCD-".date('i:s'), "online" => true ); $collection->insert($obj); //查询所有的记录 $cursor = $collection->find(); //遍历所有集合中的文档 foreach ($cursor as $obj) { echo $obj["title"] . "<br />\n"; } //删除所有数据 //$collection->remove(); //删除 name 为hm //$collection->remove(array('name'=>'hm')); //断开MongoDB连接 $m->close(); ?>
你可以去后盾人平台看看,里面的东西不错

④ 如何为PHP安装mongodb的扩展

1.首先下载php的mongodb扩展
从http://pecl.php.net/package/mongo这个网址下载mongodb的扩展源码

1

wget http://pecl.php.net/get/mongo-1.4.5.tgz

2.解压安装包

1

tar zxf mongo-1.4.5.tgz

3.进入解压目录,运行phpize进行安装准备

1
2

cd mongo-1.4.5
/usr/local/php/bin/phpize

4.安装编译
上述命令运行完后,在目录下就生成了configure文件
使用./configure命令进行安装配置,然后使用make && make install进行编译安装,命令如下:

1
2

./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

5.编辑php.ini增加下述一行添加mongodb扩展

1

extension=mongo.so

重启web容器,然后查看phpinfo,看到mongodb的内容就说明安装成功。

⑤ PHP添加了mongodb,已经加载了组件,为什么在phpinfo中不显示mongo信息

我说点题外话希望对你有些帮助吧
看你用的应该是集成环境,不知道是不是wamp;
我在wamp上有一次经历,命名在wamp开启curl可是通过命令行执行php时提示curl没有开启;
后来查了写资料才知道,wamp图标里点的php.ini不是在bin/php/php5.*.*/下的php.ini;而是在apache的bin目录下的php.ini;这两个文件的目录位置不一样不知道会不会对你说的情况造成影响.只是说说而已,勿喷

阅读全文

与phpmongo驱动相关的资料

热点内容
程序员投行 浏览:313
java多线程读取文件 浏览:145
香港外贸服务器有什么好处 浏览:612
邓伦参加密室大逃脱结果变成团宠 浏览:847
购买文件服务器怎么选择 浏览:720
空调压缩机高压报警 浏览:498
u盘数控程序放哪个文件夹 浏览:853
python模拟微信登录其他APP 浏览:301
绑扎钢筋加密区规范 浏览:671
怎么更换手机壁纸安卓 浏览:808
闲鱼app卖手机怎么走验机 浏览:821
安卓三个按键音怎么关闭 浏览:64
esp8266手机app源码 浏览:713
服务器如何建立多个站点 浏览:151
加密狗可以在笔记本上做账吗 浏览:888
学生云服务器推荐 浏览:509
android银行卡快捷支付 浏览:828
海口手机直播系统源码 浏览:416
怎么给加密货币加图标 浏览:999
phpheader编码 浏览:766