PHP mongodb运用,MongoDB在PHP下的应用学习笔记

1、连接

mongodb默认端口是:27017,因此我们连接mongodb:$mongodb = new Mongo('localhost') 或者指定IP与端口 $mongodb = new Mongo('192.168.127.1:27017') 端口可改变

若mongodb开启认证,即--auth,则连接为: $mongodb = new Mongo('root:w888168@localhost:27017');

2、选择数据库

$db = $mongodb->selectDBs('dbname'); 或者直接指定数据库名(因为mongodb可以直接创建不存在的数据库) : $db = $mongodb->dbname;

3、选择集合(collection)

$tables = $db->selectColletion('tablename')或者 $tables = $db->tablename;

接下来就可以操作集合了

4、插入新文档(document)

collection插入数据,如一个人的信息

$one = array(

'name' => 'lily';

'age'  => 0,

'hobby' => array(

'dance',

'swim',

'music'

),

);

$res = $tables -> insert($one,true);

第二个参数用于等待MongoDB完成操作,以便确定是否成功,默认值为false,当有大量记录插入时使用该参数会比较有用。插入新文档后,MongoDB会返回一个记录标识。

结果为:1,则说明已经插入了

5、删除文档

删除文档比较简单: $res = $tables->remove(array('name'=>'lily'));

注意:这里是将满足条件的都删除,如果只有删除第一个满足条件的文档,则添加第二个参数为true即可

6、查找文档

定义一个过滤器:$filter = array('name'=>'lily');

$res = $tables -> find($filter);

查找一个 : $res = $tables -> findOne($filter);

此外,还可以在过滤器里添加比较

例,获取sessions大于10的信息:

$filter = array('sessions' => array('$gt' => 10)); (gt -- > lt--< gte -- >= lte <=)

$cursor = $collection->find($filter);

返回的接口为游标

有一个重要的细节需要注意,只有当需要结果的时候查询才会被执行,在第1个例子中,当foreach循环开始时,查询才被执行。

这是个很有用的特性,因为这可以通过在游标(cursor)中增加选项来取回结果,恰好在定义查询后,执行查询前这个时刻。例如,可以设置选项来执行分页,或者获取指定数目的匹配的文档。

$total = $cursor->total();

$cursor->limit(20)->skip(40);

foreach($cursor as $user) {

}0b1331709591d260c1c78e86d0c51c18.png

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

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

相关文章

a标签

a标签定义超链接&#xff0c;用于从一张页面链接到另一张页面&#xff0c;它最重要的属性是 href 属性&#xff0c;它指示链接的目标。 <a href"http://www.w3school.com.cn">W3School</a> 最常用的就像这样添加一个链接&#xff0c;如果是点击事件的话&…

MFC程序执行过程剖析

一 MFC程序执行过程剖析 1&#xff09;我们知道在WIN32API程序当中&#xff0c;程序的入口为WinMain函数&#xff0c;在这个函数当中我们完成注册窗口类&#xff0c;创建窗口&#xff0c;进入消息循环&#xff0c;最后由操作系统根据发送到程序窗口的消息调用程序的窗口函数。而…

CF888E Maximum Subsequence(meet in the middle)

给一个数列和m&#xff0c;在数列任选若干个数&#xff0c;使得他们的和对m取模后最大&#xff08; \(1<n<35\) , \(1<m<10^{9}\)&#xff09; 考虑把数列分成两份&#xff0c;两边分别暴力求出所有的可能&#xff0c;那么对于一个数列中每一个数字\(x\)&#xff0…

virtualbox php mac,详解mac下通过docker搭建LEMP环境

在mac下通过docker搭建LEMP环境境1.安装virtualbox。由于docker是在lxc环境的容器2.安装boot2docker&#xff0c;用于与docker客户端通讯> brew update> brew install docker> brew install boot2docker3.初始化boot2docker&#xff0c;也就是在virtualbox上安装一个d…

SpringBoot项目打war包部署Tomcat教程

一、简介 正常来说SpringBoot项目就直接用jar包来启动&#xff0c;使用它内部的tomcat实现微服务&#xff0c;但有些时候可能有部署到外部tomcat的需求&#xff0c;本教程就讲解一下如何操作 二、修改pom.xml 将要部署的module的pom.xml文件<packaging>节点设置为war <…

在VS2005中使用添加变量向导十分的

在VS2005中使用添加变量向导十分的方便&#xff0c;但是如何手动添加呢。可以分为2步&#xff1a; 1. 在控件对应的类的头文件中添加相应的变量声明&#xff08;如&#xff1a;CString m_strResult&#xff09; 2. 在类的实现文件中的DoDataExchange(CDataExchange* pDX)函数…

关于如何使用xposed来hook微信软件

安卓端 难点有两个 收款码的生成和到帐监听需要源码加 2442982910转载于:https://www.cnblogs.com/ganchuanpu/p/10220705.html

GitHub动作简介

GitHub Actions can be a little confusing if you’re new to DevOps and the CI/CD world, so in this article, we’re going to explore some features and see what we can do using the tool.如果您是DevOps和CI / CD领域的新手&#xff0c;那么GitHub Actions可能会使您…

java returnaddress,JVM之数据类型

《Java虚拟机规范》阅读笔记-数据类型1.概述Java虚拟机的数据类型可分为两大类&#xff1a;原始类型(Primitive Types&#xff0c;也称为基本类型)和引用类型(Reference Types)。Java虚拟机用不同的字节码指令来操作不同的数据类型[1] 。2.原始类型原始类型是最基本的元素&…

C# matlab

编译环境&#xff1a;Microsoft Visual Studio 2008版本 9.0.21022.8 RTMMicrosoft .NET Framework版本 3.5已安装的版本: ProfessionalMicrosoft Visual Basic 2008 91986-031-5000002-60050Microsoft Visual Basic 2008Microsoft Visual C# 2008 91986-031-5000002-60050…

洛谷P3273 [SCOI2011] 棘手的操作 [左偏树]

题目传送门 棘手的操作 题目描述 有N个节点&#xff0c;标号从1到N&#xff0c;这N个节点一开始相互不连通。第i个节点的初始权值为a[i]&#xff0c;接下来有如下一些操作&#xff1a; U x y: 加一条边&#xff0c;连接第x个节点和第y个节点A1 x v: 将第x个节点的权值增加vA2 x…

基于容器制作镜像

一。镜像基础 一。基于容器制作镜像 1. 查看并关联运行的容器 [ghlocalhost ~]$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4da438fc9a8e busybox …

照顾好自己才能照顾好别人_您必须照顾的5个基本数据

照顾好自己才能照顾好别人I am pretty sure that on your data journey you came across some courses, videos, articles, maybe use cases where someone takes some data, builds a classification/regression model, shows you great results, you learn how that model wo…

matlab数字仿真实验,DVR+备用电源自动投入的MATLAB数字仿真实验仿真实验

一、动态电压恢复器(DVR)的数字仿真实验动态电压恢复器(Dynamic Voltage Restorer&#xff0c;DVR)是一种基于电力电子技术的串联补偿装置&#xff0c;通常安装在电源与敏感负荷之间&#xff0c;其作用在于&#xff1a;保证电网供电质量&#xff0c;补偿供电电网产生的电压跌落…

c#,xp系统,Matlab6.5

编译环境&#xff1a;c#&#xff0c;xp系统&#xff0c;Matlab6.5 新建一个窗体项目&#xff0c;添加matlab引用。 然后试了四种方式调用matlab&#xff1a; 第一种 view plaincopy to clipboardprint?MLApp.MLAppClass matlab new MLApp.MLAppClass(); matlab.Visible 1;…

java script 对象

java script 对象 1.创建方式 1&#xff09;通过字面量的形式创建 例&#xff1b;var stt{x:1,y:2,y:3}; 或&#xff1b;var stt{ x:1, y:2, for:3 } 注意关键字必须放到引号中间 2&#xff09;通过new创建对象 例&#xff1a;var new stt(); stt.name 小鱼; stt.age 20…

认识数据分析_认识您的最佳探索数据分析新朋友

认识数据分析Visualization often plays a minimal role in the data science and model-building process, yet Tukey, the creator of Exploratory Data Analysis, specifically advocated for the heavy use of visualization to address the limitations of numerical indi…

架构探险笔记10-框架优化之文件上传

确定文件上传使用场景 通常情况下&#xff0c;我们可以通过一个form&#xff08;表单&#xff09;来上传文件&#xff0c;就以下面的“创建客户”为例来说明&#xff08;对应的文件名是customer_create.jsp&#xff09;&#xff0c;需要提供一个form&#xff0c;并将其enctype属…

matlab飞行数据仿真,基于MATLAB的飞行仿真

收稿日期: 2005 - 05 - 15   第 23卷  第 06期 计  算  机  仿  真 2006年 06月    文章编号: 1006 - 9348 (2006) 06 - 0057 - 05 基于 MATLAB的飞行仿真 张镭 ,姜洪洲 ,齐潘国 ,李洪人 (哈尔滨工业大学电液伺服仿真及试验系统研究所 ,黑龙江 哈尔滨 150001) 摘要:该…

Windows Server 2003 DNS服务安装篇

导读-- DNS(Domain Name System&#xff0c;域名系统)是一种组织成层次结构的分布式数据库&#xff0c;里面包含有从DNS域名到各种数据类型(如IP地址)的映射“贵有恒&#xff0c;何必三更起五更勤;最无益&#xff0c;只怕一日曝十日寒。”前一段时间巴哥因为一些生活琐事而中止…