热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在PHP程序中使用MongoDB数据库

一、MongoDB简介MongoDB(名称来自humongous)是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点:http://www.mongodb.org/,MongoDB特点:面向文档存储(类JSON数据模式简单而强

一、MongoDB简介

MongoDB (名称来自"humongous") 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点:http://www.mongodb.org/,MongoDB特点:

面向文档存储(类JSON数据模式简单而强大)
动态查询
全索引支持,扩展到内部对象和内嵌数组
查询记录分析
快速,就地更新
高效存储二进制大对象 (比如照片和视频)
复制和故障切换支持
Auto-Sharding自动分片支持云级扩展性
MapReduce 支持复杂聚合
商业支持,培训和咨询

二、安装MongoDB

安装MongoDB非常的简单,仅需下载压缩包解压运行命令即可,下载地址:http://www.mongodb.org/downloads,本文为windows平台,MongoDB运行命令:>bin/mongod。提示:首先要创建存储数据的文件夹,MongoDB 默认存储数据目录为 /data/db/ (或者 c:\data\db),当然你也可以修改成不同目录,只需要指定 --dbpath 参数,eg:
>bin/mongod --dbpath=d:\mgdata\db

三、安装MongoDB PHP扩展

根据自己的PHP版本下载PHP扩展:http://github.com/mongodb/mongo-php-driver/downloads,提示:
1、VC6适合Apache、VC9适合IIS;
2、Thread safe适合PHP以模块运行方式、Non-thread safe适合CGI运行方式。
修改php.ini,加入:extension=php_mongo.dll,重启Web服务器。

四、PHP测试与MongoDB的相关示例

1、连接Mongo服务器

         //连接localhost:27017
    $conn = new Mongo();
    //连接远程主机默认端口
    $conn = new Mongo('test.com');
    //连接远程主机22011端口
    $conn = new Mongo('test.com:22011');
    //MongoDB有用户名密码
    $conn = new Mongo("mongodb://${username}:${password}@localhost")
    //MongoDB有用户名密码并指定数据库blog
    $conn = new Mongo("mongodb://${username}:${password}@localhost/blog");
    //多个服务器
    $conn = new Mongo("mongodb://localhost:27017,localhost:27018");
    ?>
         //连接localhost:27017
    $conn = new Mongo();
    //连接远程主机默认端口
    $conn = new Mongo('test.com');
    //连接远程主机22011端口
    $conn = new Mongo('test.com:22011');
    //MongoDB有用户名密码
    $conn = new Mongo("mongodb://${username}:${password}@localhost")
    //MongoDB有用户名密码并指定数据库blog
    $conn = new Mongo("mongodb://${username}:${password}@localhost/blog");
    //多个服务器
    $conn = new Mongo("mongodb://localhost:27017,localhost:27018");
    ?>
2、指定数据库和数据集名(表名)
         //选择数据库blog
    $db = $conn->blog;
    //制定结果集(表名:users)
    $collection = $db->users;
    ?>
         //选择数据库blog
    $db = $conn->blog;
    //制定结果集(表名:users)
    $collection = $db->users;
    ?>
3、CRUD
         //新增
    $user = array('name' => 'caleng', 'email' => 'admin@admin.com');
    $collection->insert($user);
    //修改
    $newdata = array('$set' => array("email" => "test@test.com"));
    $collection->update(array("name" => "caleng"), $newdata);
    //删除
    $collection->remove(array('name'=>'caleng'), array("justOne" => true));
    //查找
    $cursor = $collection->find();
    var_dump($cursor);
    //查找一条
    $user = $collection->findOne(array('name' => 'caleng'), array('email'));
    var_dump($user);
    ?>
         //新增
    $user = array('name' => 'caleng', 'email' => 'admin@admin.com');
    $collection->insert($user);
    //修改
    $newdata = array('$set' => array("email" => "test@test.com"));
    $collection->update(array("name" => "caleng"), $newdata);
    //删除
    $collection->remove(array('name'=>'caleng'), array("justOne" => true));
    //查找
    $cursor = $collection->find();
    var_dump($cursor);
    //查找一条
    $user = $collection->findOne(array('name' => 'caleng'), array('email'));
    var_dump($user);
    ?>

推荐阅读
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • MongoVUE基础操作指南:轻松上手数据库管理
    本文介绍了MongoVUE的基础操作,旨在帮助用户轻松掌握数据库管理技巧。MongoVUE是一款功能强大的MongoDB客户端工具,虽然需要注册,但其用户友好的界面和丰富的功能使其成为许多开发者的首选。文中详细解释了安装步骤、基本配置以及常见操作方法,并对一些常见的问题进行了修正和补充,确保用户能够快速上手并高效使用MongoVUE进行数据库管理。 ... [详细]
  • MongoDB高可用架构:深入解析Replica Set机制
    MongoDB的高可用架构主要依赖于其Replica Set机制。Replica Set通过多个mongod节点的协同工作,实现了数据的冗余存储和故障自动切换,确保了系统的高可用性和数据的一致性。本文将深入解析Replica Set的工作原理及其在实际应用中的配置和优化方法,帮助读者更好地理解和实施MongoDB的高可用架构。 ... [详细]
  • 本文介绍了如何使用Node.js通过两种不同的方法连接MongoDB数据库,包括使用MongoClient对象和连接字符串的方法。每种方法都有其特点和适用场景,适合不同需求的开发者。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 本文详细记录了 MIT 6.824 课程中 MapReduce 实验的开发过程,包括环境搭建、实验步骤和具体实现方法。 ... [详细]
  • 第一步java代码条件匹配与之对应的mongo数据查询第二步:java代码分组查询与之所对应的mongodb中sheel与所得出的表点击某个_id字段进入,所得出的图表为第三步:在 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 在Hive中合理配置Map和Reduce任务的数量对于优化不同场景下的性能至关重要。本文探讨了如何控制Hive任务中的Map数量,分析了当输入数据超过128MB时是否会自动拆分,以及Map数量是否越多越好的问题。通过实际案例和实验数据,本文提供了具体的配置建议,帮助用户在不同场景下实现最佳性能。 ... [详细]
author-avatar
aaaaaaaaaa本尊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有