前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[PHP]新版的mongodb扩展安装和使用

[PHP]新版的mongodb扩展安装和使用

作者头像
唯一Chat
发布2020-02-24 14:25:58
7130
发布2020-02-24 14:25:58
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地

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

ubuntu下

apt-get install php-mongodb

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

代码语言:javascript
复制
<?php
class DocModel{
    public $mongoManger=null;
    public $dbName='coms';
    public function __construct(){
        // 连接到mongodb
        $this->mongoManger = new MongoDB\Driver\Manager("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\"?>\r\n<model>\r\n\t  <fields>\r\n\t  <field label=\"标题\" name=\"title\" type=\"string\" widget=\"title\" required=\"1\" maxLength=\"60\" minLength=\"1\"   esAnalyzed=\"analyzed\" esAddNoAnalyzed=\"yes\" >\r\n\t\t<widgetParams>\r\n\t\t\t<param name=\"marks\" value=\"5,13.5,40\"\/>\r\n\t\t<\/widgetParams>\r\n\t\t<validation>\r\n\t\t\t<rule type=\"maxZhLength\" value=\"40\" msgZh=\"标题长度不能超过40个汉字长度\" \/>\r\n\t\t<\/validation>\r\n\t<\/field>\r\n\t\t  <\/fields>\r\n  <layout>\r\n\t<fieldset name=\"basic\" legend=\"基本信息\">\r\n\t\t<field name=\"title\" width=\"12\"\/>\r\n\t<\/fieldset>\t\r\n  <\/layout>\r\n<\/model>";
        $params['isTest']='0';
        $params['desc']='shihan添加';
        $params['auditFeedback']='';
        $params['status']='1';
       $params['audited']='1';
       $collect=$isDraft ? '.modelDraft':'model';

        $bulk = new MongoDB\Driver\BulkWrite();
        $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 MongoDB\Driver\Query($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 MongoDB\Driver\Query($filter, $options);
        $cursor = $this->mongoManger->executeQuery($this->dbName.$collect, $query);
        foreach ($cursor as $document) {
            var_dump($document);
        }
    }
}
$docModel=new DocModel();
$docModel->getModel(true);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档