Php7 mongodb explain,【代码片-1】 php7 mongoDB 简单封装

/**

* mongoDB 简单 封装

* 注意:支持 mongoDB 3.2+

*

* @author color_wind

*/

finalclassm_mgdb {

privatestatic$ins= [];

privatestatic$def="default";

private$_conn= null;

private$_db= null;

privatestatic$_config= [

"default"=> ["url"=>"mongodb://localhost:27017","dbname"=>"mydb1"],

"mdb1"=> ["url"=>"mongodb://10.0.0.12:27017","dbname"=>"mydb2"],

];

/**

* 创建mongo对象

* @param  string $confkey

* @return \m_mgdb

*/

staticfunctioni($confkey= NULL) {

if(!$confkey) {

$confkey= self::$def;

}

if(!isset(self::$ins[$confkey]) && ($conf= self::$_config[$confkey])) {

$m=newm_mgdb($conf);

self::$ins[$confkey] =$m;

}

returnself::$ins[$confkey];

}

privatefunction__construct(array$conf) {

$this->_conn =newMongoDB\Driver\Manager($conf["url"]);

$this->_db   =$conf["dbname"];

}

/**

* 插入数据

* @param  string $collname

* @param  array  $documents    [["name"=>"values", ...], ...]

* @param  array  $writeOps     ["ordered"=>boolean,"writeConcern"=>array]

* @return \MongoDB\Driver\Cursor

*/

functioninsert($collname,array$documents,array$writeOps= []) {

$cmd= [

"insert"=>$collname,

"documents"=>$documents,

];

$cmd+=$writeOps;

return$this->command($cmd);

}

/**

* 删除数据

* @param  string $collname

* @param  array  $deletes      [["q"=>query,"limit"=>int], ...]

* @param  array  $writeOps     ["ordered"=>boolean,"writeConcern"=>array]

* @return \MongoDB\Driver\Cursor

*/

functiondel($collname,array$deletes,array$writeOps= []) {

foreach($deletesas&$_){

if(isset($_["q"]) && !$_["q"]){

$_["q"] = (Object)[];

}

if(isset($_["limit"]) && !$_["limit"]){

$_["limit"] = 0;

}

}

$cmd= [

"delete"=>$collname,

"deletes"=>$deletes,

];

$cmd+=$writeOps;

return$this->command($cmd);

}

/**

* 更新数据

* @param  string $collname

* @param  array  $updates      [["q"=>query,"u"=>update,"upsert"=>boolean,"multi"=>boolean], ...]

* @param  array  $writeOps     ["ordered"=>boolean,"writeConcern"=>array]

* @return \MongoDB\Driver\Cursor

*/

functionupdate($collname,array$updates,array$writeOps= []) {

$cmd= [

"update"=>$collname,

"updates"=>$updates,

];

$cmd+=$writeOps;

return$this->command($cmd);

}

/**

* 查询

* @param  string $collname

* @param  array  $filter     [query]     参数详情请参见文档

* @param  array  $writeOps   ["key"=>vals,...] 其它参数 参数详情请参见文档

* @return \MongoDB\Driver\Cursor

*/

functionquery($collname,array$filter,array$writeOps= []){

$cmd= [

"find"=>$collname,

"filter"=>$filter

];

$cmd+=$writeOps;

return$this->command($cmd);

}

/**

* 执行MongoDB命令

* @param  array $param      执行的命令

* @return \MongoDB\Driver\Cursor

*/

functioncommand(array$param) {

$cmd=newMongoDB\Driver\Command($param);

return$this->_conn->executeCommand($this->_db,$cmd);

}

/**

* 获取当前mongoDB Manager

* @return MongoDB\Driver\Manager

*/

functiongetMongoManager() {

return$this->_conn;

}

}

作者:dreamer_lk

链接:https://www.jianshu.com/p/3a1d9b7fc0eb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IIS Web 服务器/ASP.NET 运行原理基本知识概念整理

前言: 记录 IIS 相关的笔记还是从公司笔试考核题开始的,问 Application Pool 与 AppDomain 的区别? 促使我对进程池进了知识的学习,所以记录一下学习的笔记。 我们知道现在 .NET 就业来看,80% 的 .NET 程序员都是从事 …

java正则表达式 ascii,是否可以检查字符串是否在Java中仅包含ASCII?

使用正则表达式您可以使用以下正则表达式查找特定的String值是否包含ASCII字符-\\A\\p{ASCII}*\\zString类的matches()方法接受正则表达式,并验证当前字符串是否与给定表达式匹配(如果匹配),则返回true,否则返回false。因此,通过将…

Http请求处理流程

从一个页面比如www.xuxiaoyu.net的请求开始如何就能打开blogs页面的呢?这其中发生了什么样的东西? Http请求(Http Request) 当服务器(IIS)接受到一个Http请求的时候进行以下步骤的处理: 1)服务器获取所请求的页面的后缀…

matlab 基金业绩归因,基金专题报告:基于净值和持仓的基金业绩归因方法研究...

核心观点:当前主流的基金业绩归因方法主要有两个方向:一是基于净值数据的时间序列回归方法,所需数据较少且操作简单,主要通过基金历史收益率与风险溢价因子收益率进行回归来分析,二是基于持仓数据的归因方法&#xff0…

iis到w3wp的数据流及工作原理

HTTP.sys->IO线程-CLR线程池中的worker线程处理 IO线程只负责把请求交给Worker线程或者放入进程池级别的队列,然后又去HTTP.SYS的队列中处理其它的请求

php跨域session共享,PHP中利用COOKIE与SESSION联合实现SESSION跨域

大家都知道在一般情况下,一个网站只有一个域名,www.demo.com,但是也有些网站架构是由多个子域名组建的.所以就需要SESSION可以跨子域被 访问到,这样才可以实现用户的跨域登录.就是说客户在A下登录的,同样B也同时登录了,不需要用户再次登录,同时也实现了参数的跨域传递.当然不可…

关于w3wp.exe

一. IIS各版本间的区别 IIS 5.0 IIS 5.1 IIS 6.0 平台 Windows 2000 Windows XP Professional Windows Server 2003 家族 体系结构 32 位 32 位和 64 位 32 位和 64 位 应用程序进程模型 TCP/IP 内核 DLLhost.exe(处于中等或高应用程序隔离模式下的多个…

php云解析播放器,xyplay云解析PHPV3.4.1优化稳定版视频解析

演示地址:如有演示站请以演示为准,无演示站以截图为准,源码太多服务器有限,无法搭建所有源码演示站,请谅解!新手购买指导:1.在本站注册账号 丨 2.登录已注册账号充值源码所需金币 丨 3.登录账号下载所需源码…

php version.,PHP_VERSION指什么

PHP_VERSION (string)当前的PHP版本&#xff0c;以字符串形式“ major.minor.release [extra]”表示。 (推荐学习&#xff1a;PHP视频教程)例如&#xff1a;<?php // PHP_VERSION_ID 自 PHP 5.2.7 起有效&#xff0c;// 如果我们的版本低于该版本&#xff0c;则用以下代码来…

C# async 和 await 理解

先假设如下场景&#xff1a; 主函数 Main&#xff0c;循环等待用户输入&#xff1b; 计算函数 Cal&#xff0c;耗时计算大量数据&#xff1b; class Test {static int Main(string[] args){while(true){// 等待用户输入}}public static int Cal() {int sum 0;for (int i …

php进阶面向对象及tp5,TP5实战技巧---开发思路 引路造桥

## TP5实战技巧实例---开发思路> 子曰&#xff1a;“学而不思则罔&#xff0c;思而不学则殆。”[TOC]### 利用TP的MVC框架 做快速开发>[success] 写在前面的话:既然选择TP5框架,我推荐大家要通读完全开发手册,我这里并不是要大家记住每一个方法,每一个细节.而是要求大家心…

C# 彻底搞懂async/await

前言 Talk is cheap, Show you the code first&#xff01; private void button1_Click(object sender, EventArgs e) {Console.WriteLine("111 balabala. My Thread ID is :" Thread.CurrentThread.ManagedThreadId);AsyncMethod();Console.WriteLine("222 …

matlab平滑窗滤波,matlab实现平滑滤波

clc;clear;close all;imimread(‘p1.jpg‘);im rgb2gray(im);imdouble(im);imim/max(im(??);figure(‘Name‘,‘原图‘,‘NumberTitle‘,‘off‘);imshow(im,[0,1]);P1 imnoise(im,‘gaussian‘,0,0.005); % adding gaussian noise 这里im是原始图像&#xff0c;添加了均值…

c#之task与thread区别及其使用

1.什么是thread 当我们提及多线程的时候会想到thread和threadpool&#xff0c;这都是异步操作&#xff0c;threadpool其实就是thread的集合&#xff0c;具有很多优势&#xff0c;不过在任务多的时候全局队列会存在竞争而消耗资源。thread默认为前台线程&#xff0c;主程序必须等…

java内存分配和垃圾回收,Java内存分配与垃圾回收

1.JVM管理的内存包含下图所示的几个运行时数据区域&#xff0c;其中方法区和堆为线程共享的数据区域&#xff0c;程序计数器&#xff0c;虚拟机栈以及本地方法栈为线程私有的数据区域。程序计数器&#xff1a;可以看做是当前线程所执行的字节码的行号指示器&#xff0c;告诉字节…

谈谈你对闭包的理解?

闭包这个概念好难理解&#xff0c;身边朋友们好多都稀里糊涂的&#xff0c;稀里糊涂的林老冷希望写下这篇文章能够对稀里糊涂的伙伴们有一些帮助~ 请大家跟我理解一下&#xff0c;如果在一个函数的内部定义了另一个函数&#xff0c;外部的我们叫他外函数&#xff0c;内部的我们…

php有哪些开源社区,PHP开源社区

简介Blade 是 Laravel 提供的一个简单而又强大的模板引擎。和其他流行的 PHP 模板引擎不同&#xff0c;Blade 并不限制你在视图中使用原生 PHP 代码。所有 Blade 视图文件都将被编译成原生的 PHP 代码并缓存起来&#xff0c;除非它被修改&#xff0c;否则不会重新编译&#xff…

GetType和typeof的区别

typeof: The typeof operator is used to obtain the System.Type object for a type. 运算符&#xff0c;获得某一类型的 System.Type 对象。 Type t typeof(int); GetType: Gets the Type of the current instance. 方法&#xff0c;获取当前实例的类型。 int i 10; Consol…

PHP mysql数据迁移,如何自动化PHP/MySQL应用程序的迁移(架构和数据)

我有一个“Schema”对象&#xff0c;我使用 – 但你可以做同样没有类..你想做的是创建一个“db_schema_versions”表&#xff1a;CREATE TABLE db_schema_versions (table varchar(255) NOT NULL PRIMARY KEY,version INT NOT NULL)在您的数据库可以跟踪它是什么版本#之后 – 它…

【转】c# 协变与抗变

转自&#xff1a; 协变和抗变 一.定义 在说定义之前&#xff0c;先看一个简单的例子&#xff1a; public class Shape { } public class Rectange : Shape { } 上面定义了两个简单的类&#xff0c;一个是图形类&#xff0c;一个是矩形类&#xff1…