PHP实现的MongoDB数据增删改查
原文地址:https://www.mongodb.org.cn/drivers/2.html (该网站为mongoDB官方网站)
php中使用mongodb你必须使用 mongodb 的 php驱动。
MongoDB PHP在各平台上的安装及驱动包下载请查看:PHP安装MongoDB扩展驱动
如果你使用的是 PHP7,请参阅:PHP7 MongoDB 安装与使用。
确保连接及选择一个数据库
为了确保正确连接,你需要指定数据库名,如果数据库在mongoDB中不存在,mongoDB会自动创建
代码片段如下:
- <?php
- $m = new MongoClient(); // 连接默认主机和端口为:mongodb://localhost:27017
- $db = $m->test; // 获取名称为 "test" 的数据库
- ?>
创建集合
创建集合的代码片段如下:
- <?php
- $m = new MongoClient(); // 连接
- $db = $m->test; // 获取名称为 "test" 的数据库
- $collection = $db->createCollection("mongo");
- echo "集合创建成功";
- ?>
执行以上程序,输出结果如下:
- 集合创建成功
插入文档
在mongoDB中使用 insert() 方法插入文档:
插入文档代码片段如下:
- <?php
- $m = new MongoClient(); // 连接到mongodb
- $db = $m->test; // 选择一个数据库
- $collection = $db->mongo; // 选择集合
- $document = array(
- "title" => "MongoDB",
- "description" => "database",
- "likes" => 100,
- "url" => "http://www.mongodb.org.cn/",
- "by" => "Mongodb中文网"
- );
- $collection->insert($document);
- echo "数据插入成功";
- ?>
执行以上程序,输出结果如下:
- 数据插入成功
然后我们在 mongo 客户端查看数据
- db.mongo.find().pretty();
输出
- {
- "_id": ObjectId("57512b3a57c9150f178b4567"),
- "title" : "MongoDB",
- "description" : "database",
- "likes" : NumberLong(100),
- "url" : "http://www.mongodb.org.cn/",
- "by" : "Mongodb中文网"
- }
查找文档
使用find() 方法来读取集合中的文档。
读取使用文档的代码片段如下:
- <?php
- $m = new MongoClient(); // 连接到mongodb
- $db = $m->test; // 选择一个数据库
- $collection = $db->runoob; // 选择集合
- $cursor = $collection->find(); // 迭代显示文档标题
- foreach ($cursor as $document) {
- echo $document["title"] . "\n";
- }
- ?>
执行以上程序,输出结果如下:
- MongoDB
更新文档
使用 update() 方法来更新文档。
以下实例将更新文档中的标题为' MongoDB 教程', 代码片段如下:
- <?php
- $m = new MongoClient(); // 连接到mongodb
- $db = $m->test; // 选择一个数据库
- $collection = $db->runoob; // 选择集合
- // 更新文档
- $collection->update(array("title"=>"MongoDB"), array('$set'=>array("title"=>"MongoDB 教程")));
- // 显示更新后的文档
- $cursor = $collection->find();
- // 循环显示文档标题
- foreach ($cursor as $document) {
- echo $document["title"] . "\n";
- }
- ?>
执行以上程序,输出结果如下:
- MongoDB 教程
然后我们在 mongo 客户端查看数据是否被更新
- db.runoob.find().pretty();
输出
- {
- "_id": ObjectId("57512b3a57c9150f178b4567"),
- "title" : "MongoDB教程",
- "description" : "database",
- "likes" : NumberLong(100),
- "url" : "http://www.mongodb.org.cn/",
- "by" : "Mongodb中文网"
- }
删除文档
使用 remove() 方法来删除文档。
以下实例中我们将移除 'title' 为 'MongoDB 教程' 的一条数据记录。, 代码片段如下:
- <?php
- $m = new MongoClient(); // 连接到mongodb
- $db = $m->test; // 选择一个数据库
- $collection = $db->mongo; // 选择集合
- // 移除文档
- $collection->remove(array("title"=>"MongoDB 教程"), array("justOne" => true));
- // 显示可用文档数据
- $cursor = $collection->find();
- foreach ($cursor as $document) {
- echo $document["title"] . "\n";
- }
- ?>
除了以上实例外,在php中你还可以使用findOne(), save(), limit(), skip(), sort()等方法来操作Mongodb数据库。
更多的操作方法可以参考 Mongodb 核心类:http://php.net/manual/zh/mongo.core.php。
PHP实现的MongoDB数据增删改查的更多相关文章
- Java连接MongoDB进行增删改查
1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...
- MongoDB的增删改查 转
MongoDB的增删改查 (黎明你好原创作品,转载请注明) MongoDB中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系. ...
- Java实现mongodb原生增删改查语句
Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...
- Scala对MongoDB的增删改查操作
=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! ==================== ...
- C# 对MongoDB 进行增删改查的简单操作
C# 对MongoDB 进行增删改查的简单操作 下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库 /// & ...
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
- 2,MongoDB之增删改查及pymongo的使用
本章我们来学习一下关于 MongoDB的增删改查 一.MongoDB操作 之 原生ORM,根本不存在SQL语句 创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间 是的,Mong ...
- SpringBoot操作MongoDB实现增删改查
本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...
随机推荐
- Linux系统文件/etc/fstab
挂载可以使用命令或者修改系统文件两种方式,第一种方式使用mount命令挂载文件系统可以立即生效并使用,但计算机重启后无效.另一种方式需要修改系统文件/etc/fstab,这种方式挂载的文件系统在计算机 ...
- evpp tcp server服务端
// netserver.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <evpp/tcp_server.h> ...
- python获取参数列表
def f(a=1, b=2, c=3): print(locals())#在函数内获取 #使用inspect模块,简单方便 python2.7: import inspectinspect.geta ...
- zabbix4.2.5默认告警模板
产生告警: Problem: {EVENT.NAME} Problem started at {EVENT.TIME} on {EVENT.DATE} Problem name: {EVENT.NAM ...
- 性能:Transform层面
数据处理的并行度 1.BlockRDD的分区数 (1)通过Receiver接受数据的特点决定 (2)也可以自己通过repartition设置 2.ShuffleRDD的分区数 (1)默认的分区数为sp ...
- BM递推杜教版【扩展】
也就是模数不是质数的时候, //下面的板子能求质数和非质数,只需要传不同的参数. #include <cstdio> #include <cstdlib> #include & ...
- mssql提权
MSSQL的提权:下面是三种方法一种利用xp_cmshell组件,还有一种sp_OACreate组件,COM组件 xp_cmshell组件的开启: 1.sql2005版本以后默认为关闭状态,需要开启命 ...
- WinDbg常用命令系列---|(进程状态)
|(进程状态) 简介 (|) 命令显示指定进程的状态或当前正在调试你的所有进程. 使用形式 | Process 参数 Process 指定要显示的进程. 如果省略此参数,将显示所有正在调试的进程. 支 ...
- Truffle - 以太坊Solidity编程语言开发框架
http://truffle.tryblockchain.org/ Truffle框架 Truffle是什么? Truffle是针对基于以太坊的Solidity语言的一套开发框架. 本身基于JavaS ...
- 【后缀数组】【LuoguP4051】 [JSOI2007]字符加密
题目链接 题目描述 喜欢钻研问题的JS 同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法. 例如'JSOI07' ...