zoukankan      html  css  js  c++  java
  • PHP操作Mongodb之增删改查篇

    之前,我讲解过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的数据就被删除了。

  • 相关阅读:
    [array] leetcode
    [array] leetcode
    [array] leetcode
    无法将“Scaffold-DbContext”项识别为 cmdlet、函数、脚本文件或可运行程序的名称...
    远程桌面报错解决:No Remote Desktop License Servers Available
    linux设置开机自启动
    阿里云ECS服务器环境搭建 ubuntu 16.04 图形界面的安装
    VS C#程序打包覆盖安装不能更新的解决方法
    MySql EF6 DBFirst 向导无法生成 edmx 解决方法(同:您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库提供程序)
    "docker build" requires exactly 1 argument(s).
  • 原文地址:https://www.cnblogs.com/marixh/p/5083490.html
Copyright © 2011-2022 走看看