之前,我讲解过PHP中mongodb扩展的安装,及启动,链接操作【忘记了?去看看吧!PHP操作Mongodb之一】。本文主要就是讲在PHP中Mongodb的增加,查询,修改及删除数据的操作。

1、增加数据

语法格式:

$db->insert($array);  //参数表示需要插入的数据

例如:我们插入一个id为1,名称为PHP,年龄为25的数据。代码如下:

<?php
//连接数据库
$connnect = new Mongo("mongodb://127.0.0.1:27017");
//选择数据库
$db = $connnect->selectDB('mydb')->selectCollection("user");
//整理需要插入的数据
$array = array();
$array['id'] = 1;
$array['name'] = 'php';
$array['age'] = 25;
//插入数据
$db->insert($array);
?>

这样,就将一条数据插入到mydb的user集合里了。当然,上面的$db->insert($array);也可以换成$db->save($array);。insert()和save()的区别在于:若存在主键,insert()不做操作,而save()则更改原来的内容为新内容。

2、查询数据

语法格式:

$db->find(array('_id' => new MongoId($id)));  //参数可以为空,那么就查询所有数据

例如,我们查询数据库中的所有数据,代码如下:

<?php
//连接数据库
$connnect = new Mongo("mongodb://127.0.0.1:27017");
//选择数据库
$db = $connnect->selectDB('mydb')->selectCollection("user");
//查询数据
$cursor = $db->find();
$array = array();
while($cursor->hasNext()) {
$array[] = $cursor->getNext();
}
echo "<pre>";
print_r($array);
?>

运行结果如下:

可见数据已经取出来了。如只想取出一条数据。可以使用$db->findOne();,这时候,只会取出第一个文档的数据。

特定条件的查询

例如,我们要查询年纪大于25的成员的信息,就在find()中写条件,代码如下:

<?php
//连接数据库
$connnect = new Mongo("mongodb://127.0.0.1:27017");
//选择数据库
$db = $connnect->selectDB('mydb')->selectCollection("user");
//查询条件
$cursor = $db->find(array('age' => array('$gt' => 25))); $array = array();
while($cursor->hasNext()) {
$array[] = $cursor->getNext();
}
?>

需要注意的是'$gt',是单引号!

3、修改数据

语法格式:

$db->update(array('_id' => new MongoId($id)), $array);  //第一个参数为指定的条件,第二个参数为要更新的对象

例如我们修改ID为537097b59067916c06000003的数据,代码如下:

<?php
//连接数据库
$connnect = new Mongo("mongodb://127.0.0.1:27017");
//选择数据库
$db = $connnect->selectDB('mydb')->selectCollection("user");
//需要修改的数据
$array = array();
$array['id'] = 1;
$array['name'] = 'java';
$array['age'] = 25;
$db->update(array('_id' => new MongoId('537097b59067916c06000003')), $array);
?>

这就ID为537097b59067916c06000003的数据进行了修改。

4、删除数据

语法格式:

$db->remove(array('_id' => new MongoId($id)), array('justOne' => True));  //第一个参数为指定的条件,如果加了justOne的参数,则只删除符合条件的一条记录而已,其他不删除

例如我们删除ID为5370a05d4b628998570cdf6d的数据,代码如下:

<?php
//连接数据库
$connnect = new Mongo("mongodb://127.0.0.1:27017");
//选择数据库
$db = $connnect->selectDB('mydb')->selectCollection("user");
//需要删除的数据
$db->remove(array('_id' => new MongoId('5370a05d4b628998570cdf6d')));
?>

这就ID为5370a05d4b628998570cdf6d的数据就被删除了。

PHP操作Mongodb之增删改查篇的更多相关文章

  1. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

  2. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  3. node-express项目的搭建并通过mongoose操作MongoDB实现增删改查分页排序(四)

    最近写了一个用node来操作MongoDB完成增.删.改.查.排序.分页功能的示例,并且已经放在了服务器上地址:http://39.105.32.180:3333. Mongoose是在node.js ...

  4. nodejs 操作mongodb, 增删改查

    很久没有学node了,之前书看了一半,今天继续学发现版本问题很坑爹,按书例子执行一堆错误.想学nodejs操作db,百度半天,一堆sb写神马鸟玩儿?简简单单写一大堆还运行不了的.需要代码也是看别人写的 ...

  5. PHP操作MongoDB(增删改查)

    MongoDB的PHP驱动提供了一些核心类来操作MongoDB,总的来说MongoDB命令行中有的功能,它都可以实现,而且参数的格式基本相似.PHP7以前的版本和PHP7之后的版本对MongoDB的操 ...

  6. Node使用Mongoose操作MongoDB数据库——增删改查的实现

    当初刚出社会时就规划了下自己的职业生涯:先成为一名优秀的前端工程师,再成为一名全栈工程师(精通前端开发.后台开发和客户端开发),最后成为一名优秀的系统架构师.转眼间已经工作快三年,是时候迈出关键性的一 ...

  7. Scala对MongoDB的增删改查操作

    =========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! ==================== ...

  8. C# 对MongoDB 进行增删改查的简单操作

    C# 对MongoDB 进行增删改查的简单操作   下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库   /// & ...

  9. python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

随机推荐

  1. Java线程:概念与原理

    Java线程:概念与原理 一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程 ...

  2. 基于mini2440的Qt移植

    花了很长时间,终于把Qt移植到mini2440开发板上了,不能说完全成功,总算是完成一大步,各中过程心酸,废话不多说,下面正式讲解移植过程. 移植环境: win7系统,虚拟机是ubuntu12.04 ...

  3. The C Programming Language Exercise

    1-9 : Write a program to copy its input to its output, replacing each string of one or more blanks b ...

  4. windows下git识别大小写配置

    默认情况下windows上的Git客户端,在文件名仅发生大小写改变时不会识别,提交后发现,gitlab上的文件名不会发生变化. 解决方法: 编辑 .git 中的config文件, 将 ignoreca ...

  5. 游戏笔记之《Fez》

    FEZ 游戏名称:菲斯 英文名称:Fez 游戏类型:ACT(动作游戏),AVG(冒险游戏) 游戏制作:Polytron Corporation 游戏发行:Trapdoor 游戏平台:PC 游戏画面: ...

  6. Verilog $random用法

    “$random函数调用时返回一个32位的随机数,它是一个带符号的整形数...”,并给出了一个例子: _________________________________________________ ...

  7. GetStoredProcCommand和GetSqlStringCommand的区别

    原文:http://www.ithao123.cn/content-4004602.html http://hi.baidu.com/847270942/blog/item/c224dd557ff74 ...

  8. dynamic 的使用 待续

    Dynamic 使用场景之一 : 替代反射 class Me { public string Blog { get; set; } public string GetName() { return&q ...

  9. Mysql binlog

    理解Mysql binlog 日志的三种模式   本文介绍下,mysql中binlog日志的三种模式,了解了各种模式的不同之处,才能更好地应用.有需要的朋友建议参考下.   一,模式1 Row Lev ...

  10. AsyncTask介绍

    AsyncTask介绍 AsyncTask比Handler更轻量级一些,适用于简单的异步处理. 使用AsyncTask时,注意重写以下几个方法: 1. doInBackground() 作用:执行后台 ...