PHP中MongoDB数据库的连接、添加、修改、查询、删除等操作实例

(编辑:jimmy 日期: 2024/12/23 浏览:2)

PHP 扩展mongon.mod.dll下载http://cn.php.net/manual/en/mongo.installation.php#mongo.installation.windows
然后php.ini添加 extension=php_mongo.dll
最后phpinfo() 查找到

PHP中MongoDB数据库的连接、添加、修改、查询、删除等操作实例
表标PHP已经自带了mongo功能,你就可以操作下面的代码(但是你必须有安装mongodb服务器)

一、连接数据库

使用下面的代码创建一个数据库链接
复制代码 代码如下:<"example.com" ); //链接到远程主机(默认端口)
$connection = new Mongo( "example.com:65432" ); //链接到远程主机的自定义的端口
print_r($connection->listDBs());//能打印出数据库数组,看看有几个数据库。
?>

如图:

PHP中MongoDB数据库的连接、添加、修改、查询、删除等操作实例
上图说有一个数据库名字叫local,总大小1个字节,他是空的。看见ok表示运行成功。

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

选择数据库

使用下面的代码来选择一个数据库
复制代码 代码如下:<"codetitle">复制代码 代码如下:<"codetitle">复制代码 代码如下:<"codetitle">复制代码 代码如下:<"codetitle">复制代码 代码如下:<" name " : " n1 " }
insert({ _id : 1, " name " : " n2 " })    会提示错误
save({ _id : 1, " name " : " n2 " })     会把 n1 改为  n2  。

使用MongoCollection::findOne()查询文档

为了证明上面那段代码的数据已经插入到数据库里了,我们进行简单的 findOne()操作以得到集合中的第一个文档数据,这种方法只返回一个文档数据,
这种方法适用于在你的查询语句的时候只匹配一个文档或者你只关心第一条数据
复制代码 代码如下:<"codetitle">复制代码 代码如下: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储存元素中以_以及$开头的都是供内部使用的

添加更多文档

为了做一些更有趣的事情,我们添加更多简单的文档到集合中,这些文档如下
复制代码 代码如下:<"codetitle">复制代码 代码如下:<"codetitle">复制代码 代码如下:
<"codetitle">复制代码 代码如下:<"codetitle">复制代码 代码如下:<"codetitle">复制代码 代码如下:array(2) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["i"]=>
  int(71)
  ["_ns"]=>
  “testCollection”
}

为查询设定一个范围

我们可以通过find()创建一个查询语句以得集合中的一个子集,例如如果我们得到所有”i”>50的文档,我们可以使用如下代码
复制代码 代码如下:<"codetitle">复制代码 代码如下:<"codetitle">复制代码 代码如下:mongo.cmd = “:”
那么上面的代码就可以替换成
复制代码 代码如下:<"codetitle">复制代码 代码如下:<"codetitle">复制代码 代码如下:<"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