zoukankan      html  css  js  c++  java
  • [PHP]新版的mongodb扩展安装和使用

    旧版的mongo扩展已经不推荐使用了,在php7以上一般是安装和使用新版的mongodb扩展

    ubuntu下

    apt-get install php-mongodb

    例如下面的代码进行了查询和插入集合操作

    <?php
    class DocModel{
        public $mongoManger=null;
        public $dbName='coms';
        public function __construct(){
            // 连接到mongodb
            $this->mongoManger = new MongoDBDriverManager("mongodb://127.0.0.1:27017");
        }
        //添加文档模型
        public function addModel($isDraft=false){
            $params=[];
            $params['modelID']='basic_news';
            $params['name']='基础新闻';
            $params['parentID']='root';
            $params['modelXML']="<?xml version="1.0" encoding="utf-8"?>
    <model>
    	  <fields>
    	  <field label="标题" name="title" type="string" widget="title" required="1" maxLength="60" minLength="1"   esAnalyzed="analyzed" esAddNoAnalyzed="yes" >
    		<widgetParams>
    			<param name="marks" value="5,13.5,40"/>
    		</widgetParams>
    		<validation>
    			<rule type="maxZhLength" value="40" msgZh="标题长度不能超过40个汉字长度" />
    		</validation>
    	</field>
    		  </fields>
      <layout>
    	<fieldset name="basic" legend="基本信息">
    		<field name="title" width="12"/>
    	</fieldset>	
      </layout>
    </model>";
            $params['isTest']='0';
            $params['desc']='shihan添加';
            $params['auditFeedback']='';
            $params['status']='1';
           $params['audited']='1';
           $collect=$isDraft ? '.modelDraft':'model';
    
            $bulk = new MongoDBDriverBulkWrite();
            $sets= ['$set' => $params];
            $bulk->update(['modelID' => $params['modelID']],$sets, ['multi' => false, 'upsert' => true]);
            $this->mongoManger->executeBulkWrite($this->dbName.$collect, $bulk);
        }
        //文档模型列表
        public function listModel($isDraft=false){
            $filter = [];
            $options = [];
            $collect=$isDraft ? '.modelDraft':'model';
            $query = new MongoDBDriverQuery($filter, $options);
            $cursor = $this->mongoManger->executeQuery($this->dbName.$collect, $query);
            foreach ($cursor as $document) {
                var_dump($document);
            }
        }
        //获取文档模型详情
        public function getModel($isDraft=false){
            $params['modelID']='basic_news';
            $filter = ['modelID'=>$params['modelID']];
            $options = [];
            $collect=$isDraft ? '.modelDraft':'model';
            $query = new MongoDBDriverQuery($filter, $options);
            $cursor = $this->mongoManger->executeQuery($this->dbName.$collect, $query);
            foreach ($cursor as $document) {
                var_dump($document);
            }
        }
    }
    $docModel=new DocModel();
    $docModel->getModel(true);
  • 相关阅读:
    十一招解决:系统IE部分网页打不开怎么办(转载)
    基于阿里云server搭建SVNserver
    hdu 2825 Wireless Password(ac自己主动机&amp;dp)
    压力单位MPa、Psi和bar之间换算公式
    hdu4506小明系列故事——师兄帮帮忙 (用二进制,大数高速取余)
    图像处理之霍夫变换(直线检測算法)
    hdu1171 Big Event in HDU 01-背包
    [视频] x264 压缩笔记
    UVALive 4043 Ants
    关于游戏手柄按键的设计
  • 原文地址:https://www.cnblogs.com/taoshihan/p/12300908.html
Copyright © 2011-2022 走看看