• php查询mongodb数据库记录id号的例子


    取MONGOID对象的ID字符串值其实就像mysql中返回数据记录的ID号了,这样的做法是非常的简单了,下面我们一起来看看。

    使用GridFS传文件到MongoDB,会返回一个MongoId对象,通常我们需要把这个对象中的$id值以字符串形式保存到数据库中,作为取文件的标识,那么PHP如何取出MongoID对象的ID字符串值呢?

    在php中通过_id 在mongodb中查找特定记录:

    查询条件需要这样写:array("_id"=>new MongoId("$id"))这个MongoId形如:

    object(MongoId)#23 (1) {
    
    ["$id"] => string(24) "558a7dab988d4d10140058b1"
    
    }

    我们要用PHP取出["$id"]的值,问题是这个键名是这种形式的,用$re->$id肯定不对,所以这样取值:

    //存储上传的excel到MongoDB
    
    public function saveToMongo($file){
    
    $id = $this->getGridFS()->storeFile($file);
    
    return $id->{'$id'};
    
    }

    这样就OK了。

    
    <?php
    $database = 'test';
    $collection = 'runoob';
     
    $mongoClient = new MongoClient();
    $MongoCollection = $mongoClient->selectDB($database)->selectCollection($collection);
     
    foreach ($MongoCollection->find() as $item) {
        echo 'MongoId:', $item['_id']->{'$id'}, '<br />';
    

    mongodb+php通过_id查询

    在php中通过_id 在mongodb中查找特定记录:

     正确: $where=array("_id"=>new MongoId($_GET['id']));

    错误:$result=$collection->find(['_id'=>'6335673fc34fafe03a000040']);
    <?php
    $conn=new Mongo("127.0.0.1:27017"); #连接指定端口远程主机
    $db=$conn->sky; #选择mydb数据库
    $collection=$db->bobo; #选择集合(选择’表’)
      
    //** 查询一条数据 **/
    //$cursor = $collection->findOne();
    $where=array("_id"=>new MongoId($_GET['id']));
    $cursor = $collection->find($where);
    /**
    *  注意:findOne()获得结果集后不能使用snapshot(),fields()等函数;
    */
     
    $array ='';
     
    foreach ($cursor as $id => $value) {
        $array[]=$value;
    }
    echo "<pre>";
    print_r($array);
      
    echo "</pre>";
     $conn->close(); #关闭连接
     
    ?>

  • 相关阅读:
    Linux基础篇之软件源码包安装
    11-1 网络协议和管理
    bash-2 httpd服务的源码编译安装脚本
    8-1 文本三级剑客之sed
    9-3 磁盘存储与分区
    9-2 yum,dnf和apt
    9-1 软件包管理
    bash-1 初始化CentOS系统的初始化脚本
    3-3 man手册介绍
    5-3 文件权限
  • 原文地址:https://www.cnblogs.com/lxwphp/p/16811823.html
Copyright © 2020-2023  润新知