php与mongoDB操作示例详解

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

Php代码 

1. <?php  

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

3.   

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

5.   

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

7. $db->selectCollection("collection");  

8.   

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

10.   

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

12.   

13.   

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

15. $collection->insert($obj);  

16. $cursor = $collection->find();  

17.   

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

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

20. }   

21.   

22.   

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

 

下面在介绍一些常用的函数:

Php代码 

1. $query = array( "i" => 71 );  

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

3.   

4. while( $cursor->hasNext() ) {  

5. var_dump( $cursor->getNext() );  

6. }   

7.   

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

9.   

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

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

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

 

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

Php代码 

1. <?php  

2.   

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

4.   

5. $people->insert($person);  

6.   

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

8.   

9. ?>  

更新时:

假如我们想修改下面文档中comments中author的名字

Php代码 

1. {   

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

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

4.     "comments" :   

5.     [  

6.         {  

7.             "author" : "Mike",  

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

9.         },  

10.         {  

11.             "author" : "John",  

12.             "comment" : "I disagree."  

13.         }  

14.     ]  

15. }  

 

为了改变内部的一个域, 我们用 $set (保证文档中其他域不被移除)并且comment的索引也变化

Php代码 

1. <?php  

2.   

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

4.   

5. ?>  

删除一个数据库

Php代码 

1. $m -> dropDB("comedy");  

 

列出所有可用数据库

Php代码 

1. $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() 

时间: 2024-09-04 02:21:00

php与mongoDB操作示例详解的相关文章

js中的cookie的读写操作示例详解_javascript技巧

cookie是一小段信息,以键/值对的信息保存在计算机硬盘上的字符串, cookie存储容量大概在4kb,不同的浏览器厂家对cookie大小的限制有微微的差异:cookie主要的本质是"识别",通过识别来做一些事情;cookie 也是无法从你的硬盘取得任何其它数据,传送电脑病毒或者获取你的电子邮件地址.cookie是有有效期的,cookie的默认有效期是从cookie生成至浏览器关闭,也可以通过设置cookie的有效期来指定其失效日期:用户也可以禁止cookie也可以手动删除cooki

javascript对象的使用和属性操作示例详解_基础知识

JavaScript 中所有变量都是对象,除了两个例外 null 和 undefined. 复制代码 代码如下: false.toString(); // 'false'[1, 2, 3].toString(); // '1,2,3' function Foo(){}Foo.bar = 1;Foo.bar; // 1 一个常见的误解是数字的字面值(literal)不是对象.这是因为 JavaScript 解析器的一个错误, 它试图将点操作符解析为浮点数字面值的一部分. 复制代码 代码如下: 2.

MongoDB安全配置详解

  这篇文章主要介绍了MongoDB安全配置详解,本文来自国内安全厂商乌云平台,讲解的还是比较全面的,需要的朋友可以参考下 0x00 MongoDB权限介绍 1.MongoDB安装时不添加任何参数,默认是没有权限验证的,登录的用户可以对数据库任意操作而且可以远程访问数据库,需以--auth参数启动. 2.在刚安装完毕的时候MongoDB都默认有一个admin数据库,此时admin数据库是空的,没有记录权限相关的信息.当admin.system.users一个用户都没有时,即使mongod启动时添

thinkphp路由规则使用示例详解

 这篇文章主要介绍了thinkphp路由规则使用示例详解和伪静态功能实现(apache重写),需要的朋友可以参考下    代码如下: <?php  //thinkphp 路由定义规则   $route = array(   'news/:action/:yeard/:month/:day'=>'news/read?year=:2&month=:3&day=:4',     'news/:action^delete|update|insert/:yeard/:month/:day

jquery移除、绑定、触发元素事件使用示例详解

 这篇文章主要介绍了jquery移除.绑定.触发元素事件使用示例详解,需要的朋友可以参考下  代码如下: unbind(type [,data])     //data是要移除的函数 $('#btn').unbind("click"); //移除click $('#btn').unbind(); //移除所有     对于只需要触发一次的,随后就要立即解除绑定的情况,用one()    代码如下: $('#btn').one("click",function(){.

bat批处理 if 命令示例详解_DOS/BAT

if 命令示例详解 if,正如它E文中的意思,就是"如果"的意思,用来进行条件判断.翻译过来的意思就是:如果符合某一条件,便执行后面的命令. 主要用来判断,1.两个"字符串"是否相等:2.两个数值是大于.小于.等于,然后执行相应的命令. 当然还有特殊用法,如结合errorlevel:if errorlevel 1 echo error 或者结合defined(定义的意思):if defined test (echo It is defined) else echo 

php示例详解Constructor Prototype Pattern 原型模式_php实例

原型模式中主要角色 抽象原型(Prototype)角色:声明一个克隆自己的接口 具体原型(Concrete Prototype)角色:实现一个克隆自己的操作 当一个类大部分都是相同的只有部分是不同的时候,如果需要大量这个类的对象,每次都重复实例化那些相同的部分是开销很大的,而如果clone之前建立对象的那些相同的部分,就可以节约开销. 针对php的一种实现方式就是__construct()和initialize函数分开分别处理这个类的初始化,construct里面放prototype也就是公共的

C#多线程、跨线程与线程安全的示例详解

C#多线程.跨线程与线程安全的示例详解(三种不同方法)  代码如下 复制代码 using System.Threading; public static class Extensions     {         //控件扩展方法(用于跨线程操作),因为为了线程的安全,防止资源竞争出现死锁或不一致的状态,.NET是不允许进行跨线程访问窗体控件的.         public static void SafeCall(this Control ctrl, Action callback)   

JavaScript操作Cookie详解

 这篇文章主要介绍了JavaScript操作Cookie详解,本文讲解了什么是Cookie.Cookie基础知识.Cookie常见问题.cookie 有两种清除方式.Cookie基础用法.Cookie高级用法等内容,需要的朋友可以参考下     什么是 Cookie "cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie 的值." - w3school cooki