本文实例讲述了PHP使用mongoclient简单操作mongodb数据库。分享给大家供大家参考,具体如下:

最好回到《mongodb shell基础命令【进阶篇】》,再来看这里的内容,否则有些东西我讲的比较笼统。

好了,不废话了,直接贴代码吧,别害怕看代码,基本每行都写了注释了<?phptry { // 连接mongodb数据库 $mongo = new MongoClient(); // 选择数据库 $db_name=$mongo->test; // 或者这样也可以 // $db_name=$mongo->selectDB("test"); // 选择集合 $collection_name=$db_name->student; // 或者和上面一样 // $collection_name=$$db_name->selectCollection("collection_name"); echo "

";  // 查看全部dbs  $dbs=$mongo->listDBs();  // var_dump($dbs);  $collections=$db_name->listCollections();  // var_dump($collections);  // 定义被插入的数据,而且php的数组形式与json格式类似,所以很容易理解  $input = array(   "name" =>"yang" ,   "sex"=>"man",   "sorce" => array(   "math" =>60 ,   "pe"=>30    )   );  // 插入数据,$result会显示插入数据的结果  // insert的第二个参数内容请看--函数1  // $result=$collection_name->insert($input);  // var_dump($result);  // 查询单条数据,跟shell命令里的findOne()一样  $findOne=$collection_name->findOne();  // var_dump($findOne);  // 查找全部数据,记住一点,find()函数的返回值不是跟findOne()函数一样的数组。而是一个对象,所以不能直接  // 打印出来,至于如何读取其中的内容,可以使用foreach循环  $find=$collection_name->find();  // 可以跟mongo shell中一样为find()函数传递第一个筛选参数  $situation = array(   "name" => "yang",    );  // 选择返回的字段内容  $field = array("sorce" => 1 );  // 详细解释看--函数2  $find=$collection_name->find($situation,$field);  // while ($each=$find->getNext()) {  // var_dump($each);  // }  $sort=$collection_name->find()->sort(array("math" => -1, ));  $limit=$collection_name->find()->sort(array("math" => -1, ))->limit(2);  $skip=$collection_name->find()->sort(array("math" => -1, ))->skip(2);  $count=$collection_name->find()->sort(array("math" => -1, ))->count();  // echo $count;  // foreach ($skip as $value) {  // var_dump($value);  // }  // 条件操作符的使用  $situation2=array(   // 注意这里字段的设置跟shell中一样   "item.quantity"=>array("$gt"=>5)   );  $gt=$db_name->orders->find($situation2);  /**********************************************数据的更新*******************************************/  // 注意,接下来这段代码会更新整个匹配到的文档,就跟update没有使用$set一样  // 详情查看函数3  $update=$db_name->orders->update(   array("_class"=>"com.mongo.model.Orders"),   array("_class"=>"hello world")   );  // 注意$set的位置,是不是与shell命令中一致  $update=$db_name->orders->update(   array("_class"=>"com.mongo.model.Orders"),   array("$set"=>array("_class"=>"hello world"))   );  // 从这里可以看到,如果会shell命令的话,那么这一节的重点就是将shell命令与php数组之间的相互转化了  /**********************************************数据的删除*******************************************/  // 删除集合中的数据  $remove=$db_name->orders->remove(array("_class"=>"com.mongo.model.Orders"));  // 删除整个集合  $db_name->orders->drop();  // 本来还有一些集合之间使用DBRef联查以及GRidFS的内容的,但是那个还是等以后要用了再来补充好了} catch (MongoConnectionException $e) {  echo $e->getMessage();}?>

其中几个函数的解释

--------------------------函数1--------------------

插入数据函数 insert$mongo->$db_name->$collection_name->insert($input.$options)

$option中的参数以及默认值$option=array("fsync"=> false,"j" => false,"w" => 1,"wtimeout"=>10000,"timeout"=>10000)

"fsync"

这个参数设置为真时,php将会告诉mongodb将当前写入数据直接写入硬盘,即使还没有全部从php文档写入mongodb数据库

"j"

这个参数设置为真市,php将会告诉mongodb在数据插入成功之前就将本次修改写入日志

"w"

如果设置成0,写操作将不会被确认,在这里还不会深究

"wtimeout"

跟上面的"w"绑定使用的,后面会介绍的

"timeout"

客户端等待服务器响应的超时时间,也就是如果php的服务器等待mongodb数据库写入数据的时间,如果超过了timeout规定的时间,就算本次写入失败

---------------------------函数2--------------------

筛选数据函数 find$mongo->$db_name->$collection_name->find($situation,$field)

$situation可以为空,表示返回全部数据,也可以是一个数组,表示筛选条件,就跟mongodb命令一样$field也可以为空,表示返回全部字段,也可以跟第一个参数一样,传入数组,规定返回的字段

注意,即使上面使用$field限制返回字段,_id字段还是会自动返回的

---------------------------函数3--------------------

更新数据 update$mongo->$db_name->$collection_name->update($criteria,$update,$option)

结合shell命令就很好理解了$criteria 表示筛选进行更新的文档$update 就是要更新后的数据$option=array("upsert"=>false,"multiple"=>true,"fsync"=>false,"w"=>1,"wtimeout"=>10000,"timeout"=>10000)

后几个的作用在函数1里讲过了就不赘述了,upsert为true表示如果当前文档存在就更新,不存在就创建,multiple为真表示匹配该条件的文档都会被更新,即不止更新满足条件的一个文档。

---------------------------函数3--------------------

删除数据 remove$mongo->$db_name->$collection_name->remove($remove,$option)

$remove表示跟find()第一个参数一样的筛选条件$option=array("justOne"=>false,"fsync"=>false,"w"=>1,"j"=>false,"wtimeout"=>10000,"timeout"=>10000)

上面有的我就不赘述了,justOne根据名字来,就一个,如果为true表示就删除一个匹配$remove的文档

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP+MongoDB数据库操作技巧大全》、《PHP基于pdo操作数据库技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

php mongoclient使用,PHP使用mongoclient简单操作mongodb数据库示例相关推荐

  1. php mongodb execute,php简单操作mongodb

    您现在的位置是:网站首页>>PHP>>php php简单操作mongodb 发布时间:2019-09-29 16:34:25作者:wangjian浏览量:525点赞量:0 一: ...

  2. sqlite mysql php_PHP实现的简单操作SQLite数据库类与用法示例

    本文实例讲述了PHP实现的简单操作SQLite数据库类与用法.分享给大家供大家参考,具体如下: SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已 ...

  3. python连接并简单操作SQLserver数据库

    python连接并简单操作SQLserver数据库 实验环境: python版本3.9 Python 3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38 ...

  4. 用python向mongodb插入数据_Python操作MongoDB数据库(一)

    Python操作MongoDB数据库(一) 前言 干货文章继续出发!隔的时间有些久了哈,对 MongoDB 安装回顾的同学,可以看下windows环境 <初识 MongoDB 数据库>.这 ...

  5. Python 操作 MongoDB 数据库!

    作者 |黄伟呢 来源 |数据分析与统计学之美 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 先来看看MySQL与MongoDB 概念区别 ...

  6. python数据库模糊查询_Python操作mongodb数据库进行模糊查询操作示例

    本文实例讲述了Python操作mongodb数据库进行模糊查询操作.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pymongo import re ...

  7. Nodejs 操作 MongoDb 数据库

    一.在 Nodejs 中使用 Mongodb 在前面的博文我们给大家讲了如何使用命令操作 Mongodb,这篇博文开始我们给大家讲解一 下如何使用 Nodejs 来操作 Mongodb 数据库 Nod ...

  8. Java操作MongoDB数据库(简明版)

    除了通过启动 mongo 进程进如 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言的访问数据库方法.MongoDB 官方提供了 Java 和 Python 语言的驱动包,利用这 ...

  9. 操作Mongodb数据库及性能测试

    文章目录 操作Mongodb数据库,性能测试 引入mongodb模板 开启mongodb数据库 连接mongodb数据库 插入一条数据 查询全部数据 测试性能 操作Mongodb数据库,性能测试 目标 ...

最新文章

  1. Provisioning profile XXXX can't be found
  2. Unofficial Windows Binaries for Python Extension Packages
  3. adams2016安装教程
  4. 当时我就震惊了:无穷带来的各种悖论
  5. c 语言 结构体 编程,C语言:结构体的编程问题(很简单)
  6. 消息队列一直建立tcp连接_云架构那些事儿:为什么我的TCP连接建立异常?
  7. LeetCode---binary-tree-inorder-traversal
  8. python能做什么-学Python能做什么?
  9. git branch查看/删除分支
  10. 哈理工OJ 2090 背包【思维】
  11. sslpinning实战
  12. 简单的HANGMAN游戏
  13. 解决Eclipse打开某个workspace报错:The project description file (.project) for (项目名)
  14. micropython按键检测_TM1650按键扫描
  15. HA RabbitMQ on K8s helm部署实战
  16. 35_Pandas计算满足特定条件的元素的数量
  17. Matlab方根运算
  18. AMD统一渲染GPU架构 历程回顾与评测
  19. 利用PE破解系统密码
  20. uniapp 输入法画面_表单输入绑定 · uni-app跨平台移动应用开发 · 看云

热门文章

  1. Java Swing Mysql实现的Ktv点歌系统项目源码附带视频运行教
  2. 基于JAVA+Swing+MYSQL的停车场管理系统
  3. Spring boot--控制器增强
  4. All Friends 极大团
  5. 双向循环链表涉及双向指针的基本操作(C语言)
  6. mysql 以及mysql可视化工具下载安装地址
  7. Maven学习(四)-----Maven中央存储库
  8. as3中的 override
  9. lua java效率_luaJavaBridge详解
  10. 必须掌握的Python技巧(二)