三十四、MongoDB PHP
PHP 语言可是使用 mongo.so ( Windows 下是 mongo.dll ) 扩展访问 MongoDB 数据库
MongoDB PHP 在各平台上的安装及驱动包下载请查看: PHP 安装 MongoDB 扩展驱动
如果你使用的是 PHP7,请移步: PHP7 MongoDB 安装与使用
PHP 连接 MongoDB 和 选择一个数据库
为了确保正确连接,我们需要指定数据库名,如果数据库在 mongoDB 中不存在, mongoDB 会自动创建
<?php/** filename: main.php* author: 搜云库技术团队(tech.souyunku.com)* Copyright © 2015-2065 tech.souyunku.com. All rights reserved.
*/$m = new MongoClient(); // 连接默认主机和端口为:mongodb://localhost:27017
$db = $m->souyunku; // 切换到 "souyunku" 数据库
PHP MongoDB 创建集合
PHP MongoDB 创建创建集合可以使用下面的代码
<?php/** filename: main.php* author: 搜云库技术团队(tech.souyunku.com)* Copyright © 2015-2065 tech.souyunku.com. All rights reserved.
*/$m = new MongoClient(); // 连接
$db = $m->souyunku; // 切换到 "souyunku" 数据库
$c_lession = $db->createCollection("lession"); // 创建 lession 集合echo "集合创建成功\n";
运行以上 PHP 脚本,输出结果如下:
$ php main.php
集合创建成功
PHP MongoDB 插入文档
可以使用 insert() 方法向 lession 集合中插入文档
<?php/** filename: main.php* author: 搜云库技术团队(tech.souyunku.com)* Copyright © 2015-2065 tech.souyunku.com. All rights reserved.
*/$m = new MongoClient(); // 连接
$db = $m->souyunku; // 切换到 "souyunku" 数据库
$collection = $db->lession; // 选择集合$document = array
( "title" => "MongoDB 基础教程", "favorite" => 1580000,"url" => "https://tech.souyunku.com/l/penglei/mongodb/","by" => "penglei"
);$collection->insert($document);echo "数据插入成功\n";
运行以上 PHP 脚本,输出结果如下:
$ php main.php
数据插入成功
然后我们在 mongo 客户端使用 db.lession.find().pretty(); 命令查看数据
> db.lession.find().pretty()
{"_id" : ObjectId("59eee84c3f8c88a4f10041a7"),"title" : "MongoDB 基础教程","favorite" : NumberLong(1580000),"url" : "https://tech.souyunku.com/l/penglei/mongodb/","by" : "penglei"
}
PHP MongoDB 查找文档
可以使用 find() 方法查询 lession 集合中的文档
<?php/** filename: main.php* author: 搜云库技术团队(tech.souyunku.com)* Copyright © 2015-2065 tech.souyunku.com. All rights reserved.
*/$m = new MongoClient(); // 连接
$db = $m->souyunku; // 切换到 "souyunku" 数据库
$collection = $db->lession; // 选择集合
$cursor = $collection->find();// 迭代显示文档标题
foreach( $cursor as $document )
{echo $document["title"],"\n";
}echo "\n";
运行以上 PHP 脚本,输出结果如下:
$ php main.php
MongoDB 基础教程
PHP MongoDB 更新文档
可以使用 update() 方法来更新 lession 集合中的文档
<?php/** filename: main.php* author: 搜云库技术团队(tech.souyunku.com)* Copyright © 2015-2065 tech.souyunku.com. All rights reserved.
*/$m = new MongoClient(); // 连接
$db = $m->souyunku; // 切换到 "souyunku" 数据库
$collection = $db->lession; // 选择集合
$cursor = $collection->find();$collection->update(array("title"=>"MongoDB 基础教程"), array('$set'=>array("title"=>"MongoDB 教程")));
// 显示更新后的文档
$cursor = $collection->find();
// 循环显示文档标题
foreach( $cursor as $document)
{echo $document["title"],"\n";
}echo "\n";
运行以上 PHP 脚本,输出结果如下:
$ php main.php
MongoDB 教程
然后我们在 mongo 客户端使用 db.souyunku.find().pretty(); 命令查看数据:
![Image 1][]
PHP MongoDB 删除文档
可以使用 remove() 方法来删除 lession 集合中的文档
<?php/** filename: main.php* author: 搜云库技术团队(tech.souyunku.com)* Copyright © 2015-2065 tech.souyunku.com. All rights reserved.
*/$m = new MongoClient(); // 连接
$db = $m->souyunku; // 切换到 "souyunku" 数据库
$collection = $db->lession; // 选择集合
$cursor = $collection->find();// 移除文档
$collection->remove(array("title"=>"MongoDB 教程"), array("justOne" => true));// 显示可用文档数据
$cursor = $collection->find();
foreach ( $cursor as $document)
{echo $document["title"],"\n";
}
运行以上 PHP 脚本,输出结果如下:
$ php main.php
除了以上方法外,PHP MongoDB 扩展还有以下方法:
1、 findOne()
2、 save()
3、 limit()
4、 skip()
5、 sort()
延伸阅读
更多的操作方法可以参考 PHP MongoDB 扩展 http://docs.php.net/set.mongodb
相关文章:
三十四、MongoDB PHP
PHP 语言可是使用 mongo.so ( Windows 下是 mongo.dll ) 扩展访问 MongoDB 数据库 MongoDB PHP 在各平台上的安装及驱动包下载请查看: PHP 安装 MongoDB 扩展驱动 如果你使用的是 PHP7,请移步: PHP7 MongoDB 安装与使用 PHP 连接 MongoDB 和 选择一个…...
浅拷贝和深拷贝的区别
浅拷贝和深拷贝 总结:浅拷贝对象数据共享,深拷贝是一个完全独立的对象,因此对象数据不共享。 浅拷贝(Shallow Copy) 浅拷贝是指创建一个新的对象,但是该新对象只是原始对象的一个副本。具体而言…...
6个常用Pycharm插件推荐,老手100%都用过
人生苦短 我用python 有些插件是下载后需要重启Pycharm才生效的 免费领源码、安装包:扣扣qun 903971231 PyCharm 本身已经足够优秀, 就算不使用插件, 也可以吊打市面上 90%的 Python 编辑器。 如果硬要我推荐几款实用的话, 那么…...
TCP的11种状态
CLOSED状态:初始状态,表示TCP连接是“关闭的”或者“未打开的”LISTEN状态:表示服务端的某个端口正处于监听状态,正在等待客户端连接的到来SYN_SENT状态:当客户端发送SYN请求建立连接之后,客户端处于SYN_SE…...
new 指令简单过程 / 类加载简单过程初始化
例子:Person p new Person(“张三”,”23”); 因为new用到person.class,所以先找到person.class文件,并且加载到内存中(如果有父类先加载父类)执行static块以及static变量的初始化(如果有父类先初始化父类࿰…...
Asan基本原理及试用
概述 Asan是Google专门为C/C开发的内存错误探测工具,其具有如下功能 使用已释放内存(野指针)√堆内存越界(读写)√栈内存越界(读写)√全局变量越界(读写)函数返回局部变…...
深度学习应用技巧4-模型融合:投票法、加权平均法、集成模型法
大家好,我是微学AI,今天给大家介绍一下,深度学习中的模型融合。它是将多个深度学习模型或其预测结果结合起来,以提高模型整体性能的一种技术。 深度学习中的模型融合技术,也叫做集成学习,是指同时使用多个…...
【并发编程】深入理解Java内存模型及相关面试题
文章目录优秀引用1、引入2、概述3、JMM内存模型的实现3.1、简介3.2、原子性3.3、可见性3.4、有序性4、相关面试题4.1、你知道什么是Java内存模型JMM吗?4.2、JMM和volatile他们两个之间的关系是什么?4.3、JMM有哪些特性/能说说JMM的三大特性吗?…...
C++编程语言STL之queue介绍
本文主要介绍C编程语言的STL(Standard Template Library)中queue(队列)的相关知识,同时通过示例代码介绍queue的常见用法。1 概述适配器(adaptor)是STL中的一个通用概念。容器、迭代器和函数都有…...
ACO优化蚁群算法
%% 蚁群算法(ant colony optimization,ACO) %清空变量 clear close all clc [ graph ] createGraph(); figure subplot(1,3,1) drawGraph( graph); %% 初始化参数 maxIter 100; antNo 50; tau0 10 * 1 / ( graph.n * mean( graph.edges(:) …...
SwiftUI 常用组件和属性(SwiftUI初学笔记)
本文为初学SwiftUI笔记。记录SwiftUI常用的组件和属性。 组件 共有属性(View的属性) Image("toRight").resizable().background(.red) // 背景色.shadow(color: .black, radius: 2, x: 9, y: 15) //阴影.frame(width: 30, height: 30) // 宽高 可以只设置宽或者高.…...
Centos 中设置代理的两种方法
Centos 中设置代理的两种方法 在使用局域网时,有时在局域网内只有一台电脑可以进行上网,其他电脑只能通过配置代理的方式来上网,在Windows系统中设置代理上网相对简单,如果只需上网的话,只需在浏览器中找到网络连接&am…...
高速PCB设计指南系列(一)
第一篇 PCB布线 在PCB设计中,布线是完成产品设计的重要步骤,可以说前面的准备工作都是为它而做的, 在整个PCB中,以布线的设计过程限定最高,技巧最细、工作量最大。PCB布线有单面布线、 双面布线及多层布线。布线的方…...
云端IDE:TitanIDE v2.6.0 正式发布
原文作者:行云创新技术总监 邓冰寒 引言 云原生集成开发环境 TitanIDE v2.6.0 正式发布了,一起来看看都有那些全新的体验吧! TitanIDE 是一款云IDE, 也称 CloudIDE,作为数字化时代研发体系不可或缺的一环,和企业建设…...
【Python】tqdm 模块
import mathfrom tqdm import tqdm, trange# 计算阶乘 results_1 []for i in range(6666):results_1.append(math.factorial(i))这是一个循环计算阶乘的程序,我们不知道程序运行的具体情况,如果能加上一个程序运行过程的进度条,那可就太有趣…...
论文阅读:Adversarial Cross-Modal Retrieval对抗式跨模式检索
Adversarial Cross-Modal Retrieval 对抗式跨模式检索 跨模态检索研究的核心是学习一个共同的子空间,不同模态的数据可以直接相互比较。本文提出了一种新的对抗性跨模态检索(ACMR)方法,它在对抗性学习的基础上寻求有效的共同子空间…...
计算机网络复习
什么是DHCP和DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的…...
unity动画--动画绑定,转换,用脚本触发
文章目录如何制作和添加动画大概过程示例图将多组图片转化为动画放在对象身上实现动画之间的切换使用脚本触发Parameters(Trigger)如何制作和添加动画 大概过程示例图 将多组图片转化为动画放在对象身上 首先,我们要为我们要对象添加animator 然后我们要设置对应的…...
车载汽车充气泵PCBA方案
汽车为什么会需要充气泵呢?其实是由于乘用车中没有供气源,所以就必需充气泵来给避震器供气。充气泵是为了保障汽车车胎对汽车的行驶安全所配备的,防止遇上紧急问题时没有解决方案,同时也可以检测轮胎胎压。现阶段的充气泵方案&…...
Android 连接 MySQL 数据库教程
在 Android 应用程序中连接 MySQL 数据库可以帮助开发人员实现更丰富的数据管理功能。本教程将介绍如何在 Android 应用程序中使用低版本的 MySQL Connector/J 驱动程序来连接 MySQL 数据库。 步骤一:下载 MySQL Connector/J 驱动程序 首先,我们需要下…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
FTXUI::Dom 模块
DOM 模块定义了分层的 FTXUI::Element 树,可用于构建复杂的终端界面,支持响应终端尺寸变化。 namespace ftxui {...// 定义文档 定义布局盒子 Element document vbox({// 设置文本 设置加粗 设置文本颜色text("The window") | bold | color(…...
虚幻基础:角色旋转
能帮到你的话,就给个赞吧 😘 文章目录 移动组件使用控制器所需旋转:组件 使用 控制器旋转将旋转朝向运动:组件 使用 移动方向旋转 控制器旋转和移动旋转 缺点移动旋转:必须移动才能旋转,不移动不旋转控制器…...
CSS 工具对比:UnoCSS vs Tailwind CSS,谁是你的菜?
在现代前端开发中,Utility-First (功能优先) CSS 框架已经成为主流。其中,Tailwind CSS 无疑是市场的领导者和标杆。然而,一个名为 UnoCSS 的新星正以其惊人的性能和极致的灵活性迅速崛起。 这篇文章将深入探讨这两款工具的核心理念、技术差…...
VSCode 没有添加Windows右键菜单
关键字:VSCode;Windows右键菜单;注册表。 文章目录 前言一、工程环境二、配置流程1.右键文件打开2.右键文件夹打开3.右键空白处打开文件夹 三、测试总结 前言 安装 VSCode 时没有注意,实际使用的时候发现 VSCode 在 Windows 菜单栏…...
