phpmongodbclose的简单介绍

本文目录一览:

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_dump($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_dump($value);}?这样我们会打印出集合中的这101个文档,$id就是文档中的_id字段,$value就是文档本身为查询规定一个标准我们可以通过find()方法得到集合中的文档子集,例如,我们要查询出集合中i字段为71的文档,我们可以使用下列方法复制代码代码如下:71);$cursor=$collection-find($query);while($cursor-hasNext()){var_dump($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_dump($cursor-getNext());}?我们同样可以得到20array(“\$gt”=20,“\$lte”=30));$cursor=$coll-find($query);while($cursor-hasNext()){var_dump($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 中查询数据怎么样实现

创建Mongodb数据库 由于Mongodb不是关系型数据库文件,实际上,它并不存在传统关系型数据库中的所谓“数据库”的概念,但不用担心,当你第一次新增数据时,mongodb就会以collection集合的形式进行保存和新建,而不需要你手工去新建立。以后可以去后盾人上面看看哦⊙∀⊙!里面有教学是哦

mongodb 需要close吗

如果使用驱动操作的话是不需要自己手动close连接的,如果是使用原生操作的话是需要的,比如nodejs的mongoose驱动不需要,使用mongodb驱动就需要。

mongodb 3.2怎么在php中连接

表标PHP已经自带了mongo功能,你就可以操作下面的代码(但是你必须有安装mongodb服务器)

一、连接数据库

使用下面的代码创建一个数据库链接

复制代码 代码如下:

?php

$connection = new Mongo(mongodb://192.168.1.5:27017); //链接到 192.168.1.5:27017//27017端口是默认的。

$connection = new Mongo( “example.com” ); //链接到远程主机(默认端口)

$connection = new Mongo( “example.com:65432” ); //链接到远程主机的自定义的端口

print_r($connection-listDBs());//能打印出数据库数组,看看有几个数据库。

?

如图:

上图说有一个数据库名字叫local,总大小1个字节,他是空的。看见ok表示运行成功。

现在你可以使用$connection链接来操作数据库了

选择数据库

使用下面的代码来选择一个数据库

复制代码 代码如下:

?php

$db = $connection-dbname;

?

这里的数据库并不一定是一个已经存在的数据库,如果所选择的数据库不存在,则会新建一个数据库,所以在选择数据库的时候,注意一定要填上正确的数据库名

如果拼写错误的话,很有可能会新建一个数据库

复制代码 代码如下:

?php

$db = $connection-mybiglongdbname;

//做一些事情

$db = $connection-mybiglongdbnme;

//现在会连上一个新的数据库

?

获取一个集合

获取一个集合跟选择数据库拥有相同的语法格式

复制代码 代码如下:

?php

$db = $connection-baz;//选择数据库

$collection = $db-foobar;//选择foobar集合

//或者使用更简洁的方式

$collection = $connection-baz-foobar;

?

插入一个文档

多维数组是可以被储存到数据库中的基本单元

一个随机的文档可能是这样

复制代码 代码如下:

?php

$doc = array(

”name” = “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()插入一个文档

复制代码 代码如下:

?php

$m = new Mongo();

$collection = $m-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()操作以得到集合中的第一个文档数据,这种方法只返回一个文档数据,

这种方法适用于在你的查询语句的时候只匹配一个文档或者你只关心第一条数据

复制代码 代码如下:

?php

$obj = $collection-findOne();

var_dump( $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储存元素中以_以及$开头的都是供内部使用的

添加更多文档

为了做一些更有趣的事情,我们添加更多简单的文档到集合中,这些文档如下

复制代码 代码如下:

?php

array( “i” = value );

?

我们可以使用循环相当有效的插入数据

复制代码 代码如下:

?php

for($i=0; $i100; $i++) {

$collection-insert( array( “i” = $i ) );

}

?

注意:我们可以插入不同的字段在同一字符集中,在这方面意味着MongoDB拥有非常自由的储存模式

在一个集合中计算文档的数量

现在我们插入了101个文档(我们用循环插入了100个,之前还插入了一个),我们可以使用count()来看看我们的数据是不是都被插入进去了

复制代码 代码如下:

?php

echo $collection-count();

?

这段代码将打印出101

MongoCollection::count() 也可以查询字段数据

使用游标得到集合中的所有文档

为了得到集合中的所有文档,我们可以使用 MongoCollection::find()方法,find()方法返回一个 MongoCursor对象,可以让我们重复得到查询所匹配的的文档

复制代码 代码如下:

?php

$cursor = $collection-find();

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

echo “$id: “;

var_dump( $value );

}

?

这样我们会打印出集合中的这101个文档,$id就是文档中的_id字段,$value 就是文档本身

为查询规定一个标准

我们可以通过find()方法得到集合中的文档子集,例如,我们要查询出集合中i字段为71的文档,我们可以使用下列方法

复制代码 代码如下:

?php

$query = array( “i” = 71 );

$cursor = $collection-find( $query );

while( $cursor-hasNext() ) {

var_dump( $cursor-getNext() );

}

?

我们将打印如下数据

复制代码 代码如下:

array(2) {

[“_id”]=

object(MongoId)#6 (0) {

}

[“i”]=

int(71)

[“_ns”]=

“testCollection”

}

为查询设定一个范围

我们可以通过find()创建一个查询语句以得集合中的一个子集,例如如果我们得到所有”i”50的文档,我们可以使用如下代码

复制代码 代码如下:

?php

$query = array( “i” = array(‘$gt’ =50)); //注意’$gt’两边的单引号

$cursor = $coll-find( $query );

while( $cursor-hasNext() ) {

var_dump( $cursor-getNext() );

}

?

我们同样可以得到20 i = 30之间的数据

复制代码 代码如下:

?php

$query = array( “i” = array( “\$gt” = 20, “\$lte” = 30 ) );

$cursor = $coll-find( $query );

while( $cursor-hasNext() ) {

var_dump( $cursor-getNext() );

}

?

我们非常容易漏掉$美元符号,你也可以选择你自定义的符号来代替美元符号,选择一个不会在你的建里面出现的符号例如”:”,在php.ini中加上这么一句话

复制代码 代码如下:

mongo.cmd = “:”

那么上面的代码就可以替换成

复制代码 代码如下:

?php

$query = array( “i” = array( “:gt” = 20, “:lte” = 30 ) );

?

当然你也可以使用ini_set(“mongo.cmd”, “:”)的方法来改变

创建一个索引

MongoDB支持索引,并且可以很容易的加到一个集合中,你只要指定某个字段为索引就行了,并且还可以指定 正序索引(1)与 倒序索引(-1)

下面的代码为I创建了索引

复制代码 代码如下:

?php

$coll-ensureIndex( array( “i” = 1 ) ); //在”i”上创建了一个索引

$coll-ensureIndex( array( “i” = -1, “j” = 1 ) );//在”i”上创建了倒序索引 在”j”上创建了正序索引

?

一个完整的简单例子

这个例子展示了如何链接mongodb数据库,如何选择数据库,如何插入数据,如何查询数据,以及关闭数据库链接

复制代码 代码如下:

?php

//链接

$m = new Mongo();

// 选择一个数据库

$db = $m-comedy;

$collection = $db-cartoons;

//添加一个元素

$obj = array( “title” = “Calvin and Hobbes”, “author” = “Bill Watterson” );

$collection-insert($obj);

//修改

$newdata = array(‘$set’ = array(“title” = “Calvin and Hobbes”));

$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 ($cursor as $obj) {

echo $obj[“title”] . “\n”;

}

// 关闭链接

$m-close();

?

输出结果为

复制代码 代码如下:

Calvin and Hobbes

XKCD

如何为PHP安装mongodb的扩展

1.首先下载php的mongodb扩展

从这个网址下载mongodb的扩展源码包

1

wget

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的内容就说明安装成功。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/192901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-01 10:31
下一篇 2024-12-01 10:31

相关推荐

  • Python简单数学计算

    本文将从多个方面介绍Python的简单数学计算,包括基础运算符、函数、库以及实际应用场景。 一、基础运算符 Python提供了基础的算术运算符,包括加(+)、减(-)、乘(*)、除…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29
  • Python樱花树代码简单

    本文将对Python樱花树代码进行详细的阐述和讲解,帮助读者更好地理解该代码的实现方法。 一、简介 樱花树是一种图形效果,它的实现方法比较简单。Python中可以通过turtle这…

    编程 2025-04-28
  • Python大神作品:让编程变得更加简单

    Python作为一种高级的解释性编程语言,一直被广泛地运用于各个领域,从Web开发、游戏开发到人工智能,Python都扮演着重要的角色。Python的代码简洁明了,易于阅读和维护,…

    编程 2025-04-28
  • 用Python实现简单爬虫程序

    在当今时代,互联网上的信息量是爆炸式增长的,其中很多信息可以被利用。对于数据分析、数据挖掘或者其他一些需要大量数据的任务,我们可以使用爬虫技术从各个网站获取需要的信息。而Pytho…

    编程 2025-04-28
  • 如何制作一个简单的换装游戏

    本文将从以下几个方面,为大家介绍如何制作一个简单的换装游戏: 1. 游戏需求和界面设计 2. 使用HTML、CSS和JavaScript开发游戏 3. 实现游戏的基本功能:拖拽交互…

    编程 2025-04-27
  • Guava Limiter——限流器的简单易用

    本文将从多个维度对Guava Limiter进行详细阐述,介绍其定义、使用方法、工作原理和案例应用等方面,并给出完整的代码示例,希望能够帮助读者更好地了解和使用该库。 一、定义 G…

    编程 2025-04-27
  • 制作一个简单的管理系统的成本及实现

    想要制作一个简单的管理系统,需要进行技术选型、开发、测试等过程,那么这个过程会花费多少钱呢?我们将从多个方面来阐述制作一个简单的管理系统的成本及实现。 一、技术选型 当我们开始思考…

    编程 2025-04-27
  • 2的32次方-1:一个看似简单却又复杂的数字

    对于计算机领域的人来说,2的32次方-1(也就是十进制下的4294967295)这个数字并不陌生。它经常被用来表示IPv4地址或者无符号32位整数的最大值。但实际上,这个数字却包含…

    编程 2025-04-27

发表回复

登录后才能评论