安装PHP-mongo扩展

安装php-mongo扩展和安装其他php扩展的步骤一样:

#1.首先上http://pecl.php.net上面搜索mongo,得到下载地址
wget http://pecl.php.net/get/mongo-1.6.11.tgz
tar zxvf ./mongo-1.6.11.tgz #2.解压进入,phpize后进行编译
cd ./mongo-1.6.11
phpize #有可能要写全phpize的地址
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install #3.编译成功后出现:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/ #4.得其地址写入php.ini
extension = mongo.so #有可能要写全mongo.so的路径,也就是上面的提示 #5.安装完以后,看phpinfo()中有没有这个扩展,有就表示安装成功;

以上基本上也是其他PHP扩展安装的常规方法

官方的PHP-mongo类使用

一般都是进行二次封装后再使用,便于后续的扩展;在此之前,我们先熟悉官方的的使用方法,php官方类使用起来跟其他扩展的类方法相比略为特殊

<?php
# 首先通过MongoClient(Mongo)类来链接mongo的客户端
# class mongo: This class extends MongoClient and provides access to several deprecated methods. 一般我们用mongoClient就可以了 $client = new MongoClient(); // 得到$client客户端对象,如果没有传入参数,它会连接到 "localhost:27017",实际上还可以传入参数mongodb://[username:password@]host1[:port1][,host2[:port2:],...]/ 链接多个客户端,比如链接三个mongos,其中一个崩溃,它会马上去链接第二个,直到全部链接不上,才会抛出一个异常 更多constructor参考:http://php.net/manual/zh/mongoclient.construct.php $db = $client -> shop; //获取名称为shop的数据库对象,或者使用$db = $m->selectDB("example"),这个时候$db是由class mongoDB来实例的,更多可以参考http://php.net/manual/zh/class.mongodb.php $goods = $db -> goods; //得到goods集合对象,这个时候的$goods对象是由class MongoCollection类来实例的; //db.goods.find({},{'_id':0,'goods_id':1,'goods_name':1})
$cursor = $goods -> $goods -> find(array(),array('_id' => 0,'goods_id' => 1,'goods_name' => 1)); //得到cursor对象,这个时候的cursor对象是由class MongoCursor来实例的 #接下来才是正式操作mongoDB的数据,把json转换为数组既可;
$data = array();
foreach ($cursor as $v) {
$data[] = $v;
} #或者
$data = iterator_to_array($cursor); # 内置函数: 将迭代器中的元素拷贝到数组 /**********部分操作示例**********/ $users = $db -> users; # 返回值
$insert = $users -> insert(array('user_id' => 1,'user_name' => 'zxg','sex' => 'boy'));
/*
Array
(
[ok] => 1 //除非 last_error 本身出现错误,否则都是1,代表成功;
[n] => 0 //受影响的数量,在insert的时候这个值始终是0;
[err] => null
[errmsg] => null
)
*/ # 执行js,注意这是class mongoDB类的方法
$response = $db->execute("function(greeting, name) { return greeting+', '+name+'!'; }", array("Good bye", "Joe"));
echo $response['retval']; // Good bye, Joe!
?>

参考

PHP: MongoClient - Manual: http://php.net/manual/zh/class.mongoclient.php

【mongoDB基础篇②】PHP-mongo扩展的编译以及使用的更多相关文章

  1. MongoDB基础篇1:安装和服务配置

    一.下载 请前往官网下载community版本MongoDB,我当前可见最新版本是3.6.4 https://www.mongodb.com/download-center#community 如需下 ...

  2. mongodb基础篇

    一.  关于mongodb 两种非关系数据库 Redis:满足极高读写性能的Key-Value数据库 键值式储存,可以通过键快速查询到值. 内存数据库,类似于mencached.性能出色.容量低,不具 ...

  3. centos下安装mongodb和php的mongo扩展

    安装MongoDB 1.下面安装MongoDB,先下载: cd /usr/src wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2 ...

  4. 第一部分 mongodb 基础篇

    什么是NoSQL认识MongoDBMongDB的下载与安装MongoDB的体系结构常用命令(基本的增删改查)客户端GUI工具集合 一: 什么是NoSql1 NoSQL简介NoSQL是Not Only ...

  5. 【mongoDB基础篇①】安装与常用操作语句

    简述 mongoDB与redis同为noSql数据库,但是redis为kv数据库(key/value),而mongoDB为文档型数据库存储的是文档(Bson->json的二进制化).内部执行引擎 ...

  6. C语言基础篇(零)gcc编译和预处理

    导航: 1. gcc编译 2. 预处理 ----->x<------------->x<--------------->x<--------------->x ...

  7. MongoDB基础篇2:数据库/用户/数据集合的增删改

    一.数据库操作 创建并进入数据库: 命令:use DATABASE_NAME 示例:use tms   查看所有数据库: 命令:show dbs   注意: (1)新创建的数据库在show dbs命令 ...

  8. mongodb基础用法

    安装部分 mongodb配置方法 mongodb的安装目录 C:\MongoDB\Server\3.2\bin 创建以下目录 c:\mongo\log c:\mongo\db 创建mongodb的配置 ...

  9. 我叫Mongo,收了「查询基础篇」,值得你拥有

    这是mongo第二篇「查询基础篇」,后续会连续更新6篇 mongodb的文章总结上会有一系列的文章,顺序是先学会怎么用,在学会怎么用好,戒急戒躁,循序渐进,跟着我一起来探索交流. 通过上一篇基础篇的介 ...

随机推荐

  1. 深入理解JavaScript的变量作用域(转载Rain Man之作)

    在学习JavaScript的变量作用域之前,我们应当明确几点: JavaScript的变量作用域是基于其特有的作用域链的. JavaScript没有块级作用域. 函数中声明的变量在整个函数中都有定义. ...

  2. python初试牛刀

    需求:在L7的一台机器上做nginx配置,然后代码分发到别的所有的机器上.由于目录中有很多配置文件,而且防止误操作,需要修改配置之前先备份原配置.然后需要在运行修改配置的脚本之前,先弹出界面,告知操作 ...

  3. 1095. Cars on Campus (30)

    Zhejiang University has 6 campuses and a lot of gates. From each gate we can collect the in/out time ...

  4. (转)《深入理解java虚拟机》学习笔记10——并发编程(二)

    Java的并发编程是依赖虚拟机内存模型的三个特性实现的: (1).原子性(Atomicity): 原子性是指不可再分的最小操作指令,即单条机器指令,原子性操作任意时刻只能有一个线程,因此是线程安全的. ...

  5. iOS开发应用学习笔记

    一.iOS应用设计 1. 参考资料: 解读iPhone平台的一些优秀设计思路 iPhone App的特点及基本设计方法 Mobile UI design and Developer 2. 用户对iPh ...

  6. left edge algorithm.

    今天在看GCPC 2013 的时候,遇到了一个简单的任务分配的题目. 即给定一系列任务[l,r], 每个人不能同时做两个, 最多需要几个人来完成? 这个问题的一个标准解法是对所有l,r排序,然后遇到l ...

  7. Java Day 01

    2-19交互方式 GUI Graphical User Interface CLI Command Line Interface JavaEE Enterprise Edition 13种技术 Jav ...

  8. kruskal --- C++

    #include <cstdio> #include <algorithm> using namespace std; struct aaa{ int l,r,w; bool ...

  9. Javascript数据类型之Undefined和null

    Javascrip中的数据类型分为原始数据类型(primitive type)和对象数据类型(object type). 原始数据类型 原始数据类型包括:数字.字符串.布尔值.null.undefin ...

  10. 如何解决Mac与iPhone之间handoff连接问题

    首先账户以及设备handoff开关问题不再赘述.主要是昨天发现的一个小技巧 当确认所有设备的iCloud账号统一.蓝牙打开.处在同一WiFi下的前提下,我的iPhone和Mac仍然handoff连接有 ...