php操作mongoDB实例分析


Posted in PHP onDecember 29, 2014

本文实例讲述了php操作mongoDB的方法。分享给大家供大家参考。具体分析如下:

mongoDB数据库是一种以json格式存储的数据库,非常适用于各种应用开发,这里就来给各位朋友介绍一些mongoDB学习实例.

mongodb想要整合PHP,需要安装Mongo扩展,这个比较简单,现在说一下MongoDB PHPAPI  及用法.

先看一个简单的例子,实例代码如下:

<?php

 $m = new Mongo();  //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如 192.168.0.4:27017,如果端口是27017,端口可以省略 

 $db = $m -> comedy;  // 选择comedy数据库,如果以前没该数据库会自动创建,也可以用$m->selectDB("comedy");

 $collection = $db->collection;  //选择comedy里面的collection集合,相当于RDBMS里面的表,也-可以使用

 $db->selectCollection("collection");

 $obj = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );

 $collection->insert($obj); //将$obj 添加到$collection 集合中 

 $obj = array( "title" => "XKCD", "online" => true );

 $collection->insert($obj);

$cursor = $collection->find();

 foreach ($cursor as $obj) {  //遍历所有集合中的文档

 echo $obj["title"] . "n";

 } 

$m->close(); //断开MongoDB连接

下面在介绍一些常用的函数,Php代码如下:
$query = array( "i" => 71 );

 $cursor = $collection->find( $query );// 在$collectio集合中查找满足$query的文档

 while( $cursor->hasNext() ) {

 var_dump( $cursor->getNext() );

 }  

 

 $collection -> findOne();//返回$collection集合中第一个文档  

 $collection -> count();  //返回$collection集合中文档的数量  

 $coll->ensureIndex( array( "i" => 1 ) );  // 为i “这一列”加索引 降序排列 

 $coll->ensureIndex( array( "i" => -1, "j" => 1 ) );  // 为i “这一列”加索引 降序排列 j升序

查询时,每个Object插入时都会自动生成一个独特的_id,它相当于RDBMS中的主键,用于查询时非常方便,Php代码如下:
<?php  

 $person = array("name" => "joe");  

 $people->insert($person);  

  $joe = $people->findOne(array("_id" => $person['_id']));  

?>

更新时:假如我们想修改下面文档中comments中author的名字,Php代码如下:
{ 

     "_id" : ObjectId("4b06c282edb87a281e09dad9"), 

     "content" : "this is a blog post.",

     "comments" : 

     [

         {

             "author" : "Mike",

             "comment" : "I think that blah blah blah...",

         },

         {

             "author" : "John",

             "comment" : "I disagree."

         }

     ]

}

为了改变内部的一个域,我们用 $set,保证文档中其他域不被移除,并且comment的索引也变化,Php代码如下:
<?php 

$collection->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim")))); //$criteria 为要更新的元素  

?>

删除一个数据库,Php代码如下:
$m -> dropDB("comedy");

列出所有可用数据库,Php代码如下:

$m->listDBs(); //无返回值

好了就先写这么多了,有兴趣的话可以在网上搜到其他的关于Mongo-php API的用法.

命令行使用实例:

1. db.system.users.find()
 
2. db.users.count()
 
3. db.users.ensureIndex({password:-1})
 
4. use test
 
5. db.users.getIndexes()
 
6. db.repairDatabase()
 
7. show users
 
8. show dbs
 
9. db.users.find({username:{$in:['4d81a82398790']}}).explain()
 
10. db.users.dropIndexes()
 
11. db.users.find().count()
 
12. db.users.find().limit(5)
 
13. db.users.find({"username":"ssa"}) 
 
14. show collections
 
15. db.users.remove()
 
16. db.user.remove({'username':'admin'})
 
17. db.user.insert({'username':'admin','age':21,'nickname':'admin'})
 
18. db.user.save({'username':'admin','age':21,'info':['12','12313','zzsd']})
 
19. db.createCollection("user") 
 
20. db.dropDatabase()
 
21. show collections
 
22. db.test.drop()
 
23. db.copyDatabase('test','test1')
 
24. show profile
 
25. db.printCollectionStats()
 
26. db.addUser('admin','admin123') 
 
27. db.setProfilingLevel(2);
 
28. db.setProfilingLevel( 1 , 10 );
 
29. db.system.profile.find()

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
在PHP中使用反射技术的架构插件使用说明
May 18 PHP
php下将多个数组合并成一个数组的方法与实例代码
Feb 03 PHP
php获取后台Job管理的实现代码
Jun 10 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
Mar 26 PHP
在PHP中使用X-SendFile头让文件下载更快
Jun 01 PHP
destoon调用企业会员公司形象图片的实现方法
Aug 21 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 PHP
PHP基于单例模式实现的mysql类
Jan 09 PHP
浅析Yii2 GridView实现下拉搜索教程
Apr 22 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 PHP
Yii实现多数据库主从读写分离的方法
Dec 29 #PHP
php调用mysql存储过程实例分析
Dec 29 #PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 #PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 #PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 #PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 #PHP
php读取远程gzip压缩网页的方法
Dec 29 #PHP
You might like
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
2011/12/26 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
简单介绍Python中的round()方法
2015/05/15 Python
Python实现文件复制删除
2016/04/19 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
python中异常捕获方法详解
2017/03/03 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
Python中遍历列表的方法总结
2019/06/27 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
Python request中文乱码问题解决方案
2020/09/17 Python
使用django自带的user做外键的方法
2020/11/30 Python
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
餐饮加盟计划书
2014/01/10 职场文书
寄语十八大感言
2014/02/07 职场文书
2015年中个人总结范文
2015/03/10 职场文书
应聘教师自荐信
2015/03/26 职场文书
停电放假通知
2015/04/14 职场文书
保外就医申请书范文
2015/08/06 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
python随机打印成绩排名表
2021/06/23 Python
使用Python拟合函数曲线
2022/04/14 Python