PHP操作MongoDB

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:
<?php
error_reporting(7);

$conn = new Mongo();

$db = $conn->PHPDataBase;
$collection = $db->PHPCollection;


/*-----------------------------
 * 删除
 *-----------------------------
$collection->remove(array("name" => "xixi111"));
*/

/*------------------------------
 * 插入
 *------------------------------
for($i = 0;$i <= 50;$i++) {
    $data = array("name" => "xixi".$i,"email" => "673048143_".$i."@qq.com","age" => $i*1+20);
    $collection->insert($data);
}
*/

/*-------------------------------
 * 查找
 *-------------------------------
$res = $collection->find(array("age" => array('$gt' => 25,'$lt' => 40)),array("name" => true));

foreach($res as $v) {
    print_r($v);
}
*/

/*-------------------------------
 * 更新
 *-------------------------------
 $collection->update(array("age" =>22),array('$set' => array("name" => "demoxixi")));
*/
?>
复制代码

完成MongoDB的安装

完成PHP对MongoDB的扩展,重启apache

开启MongoDB服务,就像mysql一样。

然后就可以用PHP操作MongoDB了。

下面是我自己今天学习的一些笔记:

首先要能对概念有个清晰的理解。
新闻的增删改查。
首先是新闻添加,新闻标题,新闻作者,新闻内容。
然后是新闻的读取。MongoDB中的数据读取出来,通过PHP读取。
这里面的界面都是用HTML语言写的,这个是一样的。

传统的关系数据库一般由数据库、表、记录三个层次组成。
MongoDB是由数据库、集合、文档三个层次组成。
MongoDB采用的是面向文档的数据模型使其可以自由在多台服务器之间分割数据。
它还可以平衡集群的数据和负载,自动重排文档。

支持:
索引
可以存储Javascript
文件存储

不支持:
join和复杂的多行事务

文档是MongoDB中数据的基本单元(类似于关系型数据库中的行)
类似的,集合可以被看做是没有模式的表。

多个键及其关联的值有序地放置在一起便是文档。
{"greeting":"Hello,world!"}
这个文档只有一个键"greeting",其对应的值为"Hello,world!"
{"greeting":"Hello,world!","foo":3}

MongoDB不但区分类型,而且区分大小写:
{"foo":3}
{"foo":"3"}

{"foo":3}
{"Foo":3}
都是不同的

还有一个非常重要的事项,MongoDB文档不能有重复的键。下面的文档时非法的:
{"greeting":"Hello,world!","greeting":"Hello,MongoDB"}

集合
集合就是一组文档。如果说MongoDB中的文档类似于关系型数据库中的行,那么集合就如同表。

集合是无模式的,这意味着一个集合里面的文档可以是各式各样的。
例如下面的文档可以存在于同一个集合里:
{"greeting":"Hello,world!"}
{"foo":5}

把同种类型的文档放在一个集合里,这样数据会更加集中。

MongoDB中多个文档组成集合,同样多个集合可以组成数据库。

数据库名最终会变成文件系统里的文件。

CRUD
插入:
insert函数添加一个文档到集合里面。例子:db.blog.insert(post)。
读取:
find读取集合里的文档。例子:db.blog.find()。
若是想查看一个文档,可以用findOne。
更新:
update。update接受两个参数,第一个是要更新文档的限定条件,第二个是新的文档。
例子:db.blog.update({title:"My Blog Post"},post)
删除:
remove。它可以接受一个文档以指定限制条件。
db.blog.remove({title:"My Blog Post"})

MongoDB字段类型
null:
null用于表示空值或者不存在的字段。{"x":null}
布尔:
布尔类型有两个值'true'和'false':
{"x":true}

32位整数:
64位整数:

64位浮点数:shell中的数字都是这种类型。
{"x":3.14}
这也是一个浮点数
{"x":3}

字符串:
{"x":"foobar"}
符号:
对象id:
日期:
正则表达式:
{"x":/foobar/i}
代码:
{"x":function(){/*...*/}}
二进制数据:
最大值:
最小值:
未定义:
{"x":undefined}
数组:
{"x":["a","b","c"]}
内嵌文档:
{"x":{"foo":"bar"}}



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/archive/2012/10/10/2718531.html,如需转载请自行联系原作者


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
1月前
|
PHP
php的foreach神操作
php的foreach神操作
22 0
|
4月前
|
NoSQL JavaScript 前端开发
如何使用 Node.js 连接和操作 MongoDB 数据库?
如何使用 Node.js 连接和操作 MongoDB 数据库?
227 2
|
3月前
|
NoSQL MongoDB Python
深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析
使用 sort() 方法对结果进行升序或降序排序。 sort() 方法接受一个参数用于“字段名”,一个参数用于“方向”(升序是默认方向)。
67 0
|
7月前
|
关系型数据库 MySQL PHP
PHP 原生操作 Mysql
PHP 原生操作 Mysql
81 0
|
21天前
|
缓存 NoSQL 关系型数据库
【MongoDB】MongoDB更新操作时是否立刻fsync到磁盘?
【4月更文挑战第2天】【MongoDB】MongoDB更新操作时是否立刻fsync到磁盘?
|
22天前
|
消息中间件 NoSQL Kafka
云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作
该方案描述了一个大数据ETL流程,其中阿里云Kafka消息根据内容触发函数计算(FC)函数,执行针对MongoDB的增、删、改操作。
|
7月前
|
关系型数据库 MySQL 数据库连接
PHP 原生操作 Mysql 增删改查案例
PHP 原生操作 Mysql 增删改查案例
87 0
|
3月前
|
SQL PHP 数据库
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
|
3月前
|
机器学习/深度学习 自然语言处理 NoSQL
|
3月前
|
存储 NoSQL MongoDB
Python小姿势 - Python操作MongoDB数据库
Python小姿势 - Python操作MongoDB数据库