php mongoclient使用,PHP使用mongoclient简单操作mongodb数据库示例
本文实例讲述了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数据库示例相关推荐
- php mongodb execute,php简单操作mongodb
您现在的位置是:网站首页>>PHP>>php php简单操作mongodb 发布时间:2019-09-29 16:34:25作者:wangjian浏览量:525点赞量:0 一: ...
- sqlite mysql php_PHP实现的简单操作SQLite数据库类与用法示例
本文实例讲述了PHP实现的简单操作SQLite数据库类与用法.分享给大家供大家参考,具体如下: SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已 ...
- python连接并简单操作SQLserver数据库
python连接并简单操作SQLserver数据库 实验环境: python版本3.9 Python 3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38 ...
- 用python向mongodb插入数据_Python操作MongoDB数据库(一)
Python操作MongoDB数据库(一) 前言 干货文章继续出发!隔的时间有些久了哈,对 MongoDB 安装回顾的同学,可以看下windows环境 <初识 MongoDB 数据库>.这 ...
- Python 操作 MongoDB 数据库!
作者 |黄伟呢 来源 |数据分析与统计学之美 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 先来看看MySQL与MongoDB 概念区别 ...
- python数据库模糊查询_Python操作mongodb数据库进行模糊查询操作示例
本文实例讲述了Python操作mongodb数据库进行模糊查询操作.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pymongo import re ...
- Nodejs 操作 MongoDb 数据库
一.在 Nodejs 中使用 Mongodb 在前面的博文我们给大家讲了如何使用命令操作 Mongodb,这篇博文开始我们给大家讲解一 下如何使用 Nodejs 来操作 Mongodb 数据库 Nod ...
- Java操作MongoDB数据库(简明版)
除了通过启动 mongo 进程进如 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言的访问数据库方法.MongoDB 官方提供了 Java 和 Python 语言的驱动包,利用这 ...
- 操作Mongodb数据库及性能测试
文章目录 操作Mongodb数据库,性能测试 引入mongodb模板 开启mongodb数据库 连接mongodb数据库 插入一条数据 查询全部数据 测试性能 操作Mongodb数据库,性能测试 目标 ...
最新文章
- Provisioning profile XXXX can't be found
- Unofficial Windows Binaries for Python Extension Packages
- adams2016安装教程
- 当时我就震惊了:无穷带来的各种悖论
- c 语言 结构体 编程,C语言:结构体的编程问题(很简单)
- 消息队列一直建立tcp连接_云架构那些事儿:为什么我的TCP连接建立异常?
- LeetCode---binary-tree-inorder-traversal
- python能做什么-学Python能做什么?
- git branch查看/删除分支
- 哈理工OJ 2090 背包【思维】
- sslpinning实战
- 简单的HANGMAN游戏
- 解决Eclipse打开某个workspace报错:The project description file (.project) for (项目名)
- micropython按键检测_TM1650按键扫描
- HA RabbitMQ on K8s helm部署实战
- 35_Pandas计算满足特定条件的元素的数量
- Matlab方根运算
- AMD统一渲染GPU架构 历程回顾与评测
- 利用PE破解系统密码
- uniapp 输入法画面_表单输入绑定 · uni-app跨平台移动应用开发 · 看云