`

php操作mongo

 
阅读更多
本文章根据:
http://us.php.net/manual/en/class.mongocollection.php
http://www.cnblogs.com/xffy1028/archive/2011/12/03/2272837.html
整理,及平时学习所得
什么是mongoDB
  • MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
  • MongoDB将数据储存在文档中。
  • MongoDB有良好的PHP支持。

mongo 的 安装请看这里:http://wrj913.iteye.com/admin/blogs/1695546

关于查询MongoDB一些使用函数可以查询手册http://us.php.net/manual/en/class.mongocollection.php

建立一个文档:
{
   "_id": ObjectId,
   "i": NumberInt
}


$connection = new Mongo("mongodb://用户名:密码@数据库地址/数据库");  //创建链接
$db = $connection->test; //选择数据库
$collection = $db->wrj;  //选择数据表

$db->wrj->remove(array('i' => array("\$gt" => 20)));
$doc = array( "name" => "MongoDB",
   "type" => "database",
   "count" => 1,
   "info" => (object)array( "x" => 203, "y" => 102),
   "versions" => array("0.9.7", "0.9.8", "0.9.9")
);

$collection->insert( $doc ); //插入数据

$obj = $collection->findOne();
var_dump( $obj );

批量插入数据
for($i=0; $i<100; $i++) {
    $collection->insert( array( "i" => $i ) );
}

//打印插入数量
echo $collection->count();

//查询所有数据
$cursor = $collection->find();
foreach ($cursor as $id => $value) {
    echo "$id: ";
    var_dump( $value );
}


//查询
$query = array( "i" => 71 );
$cursor = $collection->find( $query );

while( $cursor->hasNext() ) {
    var_dump( $cursor->getNext() );
}

$query = array( '$or'=>array(array("i" =>array("\$gt" => 20, "\$lte" => 30)),array("i" => 70)));
$cursor = $collection->find( $query );

while( $cursor->hasNext() ) {
    var_dump( $cursor->getNext() );
}


这里有sql语句与mongo的对比:http://us.php.net/manual/en/mongo.sqltomongo.php;方便大家浏览我切了一张图



mongo的操作

MongoDB的好处挺多的,比如多列索引,查询时可以用一些统计函数,支持多条件查询,但是目前多表查询是不支持的,可以想办法通过数据冗余来解决多表查询的问题。

MongoDB对数据的操作很丰富,下面做一些举例说明,内容大部分来自官方文档,另外有部分为自己理解。



查询colls所有数据

db.colls.find() //select * from colls

通过指定条件查询

db.colls.find({‘last_name’: ‘Smith’});//select * from colls where last_name=’Smith’

指定多条件查询

db.colls.find( { x : 3, y : “foo” } );//select * from colls where x=3 and y=’foo’



指定条件范围查询

db.colls.find({j: {$ne: 3}, k: {$gt: 10} });//select * from colls where j!=3 and k>10



查询不包括某内容

db.colls.find({}, {a:0});//查询除a为0外的所有数据



支持<, <=, >, >=查询,需用符号替代分别为$lt,$lte,$gt,$gte

db.colls.find({ “field” : { $gt: value } } );

db.colls.find({ “field” : { $lt: value } } );

db.colls.find({ “field” : { $gte: value } } );

db.colls.find({ “field” : { $lte: value } } );



也可对某一字段做范围查询

db.colls.find({ “field” : { $gt: value1, $lt: value2 } } );



不等于查询用字符$ne

db.colls.find( { x : { $ne : 3 } } );



in查询用字符$in

db.colls.find( { “field” : { $in : array } } );

db.colls.find({j:{$in: [2,4,6]}});



not in查询用字符$nin

db.colls.find({j:{$nin: [2,4,6]}});



取模查询用字符$mod

db.colls.find( { a : { $mod : [ 10 , 1 ] } } )// where a % 10 == 1



$all查询

db.colls.find( { a: { $all: [ 2, 3 ] } } );//指定a满足数组中任意值时



$size查询

db.colls.find( { a : { $size: 1 } } );//对对象的数量查询,此查询查询a的子对象数目为1的记录



$exists查询

db.colls.find( { a : { $exists : true } } ); // 存在a对象的数据

db.colls.find( { a : { $exists : false } } ); // 不存在a对象的数据



$type查询$type值为bsonhttp://bsonspec.org/数 据的类型值

db.colls.find( { a : { $type : 2 } } ); // 匹配a为string类型数据

db.colls.find( { a : { $type : 16 } } ); // 匹配a为int类型数据



使用正则表达式匹配

db.colls.find( { name : /acme.*corp/i } );//类似于SQL中like



内嵌对象查询

db.colls.find( { “author.name” : “joe” } );



1.3.3版本及更高版本包含$not查询

db.colls.find( { name : { $not : /acme.*corp/i } } );

db.colls.find( { a : { $not : { $mod : [ 10 , 1 ] } } } );



sort()排序

db.colls.find().sort( { ts : -1 } );//1为升序2为降序



limit()对限制查询数据返回个数

db.colls.find().limit(10)



skip()跳过某些数据

db.colls.find().skip(10)



snapshot()快照保证没有重复数据返回或对象丢失



count()统计查询对象个数

db.students.find({‘address.state’ : ‘CA’}).count();//效率较高

db.students.find({‘address.state’ : ‘CA’}).toArray().length;//效率很低



group()对查询结果分组和SQL中group by函数类似

distinct()返回不重复值


  • 大小: 154.4 KB
分享到:
评论

相关推荐

    php-mongo模块支持到php5.5

    `php-mongo`是PHP的一个扩展,主要用于连接和操作MongoDB数据库。这个扩展提供了一系列的类和方法,使得PHP程序员可以方便地执行如文档插入、查询、更新和删除等操作。`php-mongo.dll`是该扩展的动态链接库文件,...

    php_mongo 扩展php5.6版本

    PHP_Mongo扩展是PHP与MongoDB数据库之间交互的重要桥梁,它为PHP开发者提供了一套完整的接口,用于操作MongoDB数据库。本文将深入探讨PHP 5.6版本下的PHP_Mongo扩展,包括其功能特性、安装配置、常见用法以及一些...

    php5.3-php5.4mongo扩展

    MongoDB的PHP扩展(php_mongo)是PHP与MongoDB进行交互的重要工具,它提供了丰富的函数和类库,使得开发者能够方便地在PHP中操作MongoDB数据库。然而,由于版本差异和编译配置问题,有时找到适用于特定PHP版本的兼容...

    php_mongo_5.2.6.6

    php_mongo是PHP与MongoDB数据库之间的桥梁,它允许PHP代码直接操作MongoDB数据库,提供了丰富的API接口,使开发者可以轻松地执行查询、插入、更新和删除等操作。php_mongo_5.2.6.6是这个扩展的一个特定版本,适用于...

    php_mongo.dll 各版本支持php5.6

    要正确使用这些文件,需要根据您的 PHP 安装版本(5.4、5.5 或 5.6)、操作系统位数(32 位或 64 位)、Web 服务器类型(Apache 或 IIS)以及线程安全需求来选择合适的 php_mongo.dll 文件,将其放到 PHP 的扩展目录...

    php_mongo.dll 5.4,5.5插件各个版本下载

    为了在PHP环境中与MongoDB进行交互,我们需要一个名为`php_mongo.dll`的扩展插件。这个插件是PHP与MongoDB数据库之间的桥梁,它允许开发者在PHP代码中直接操作MongoDB。 标题"php_mongo.dll 5.4,5.5插件各个版本...

    php_mongo-1.3.1( PHP 5.2, 5.3 and 5.4) builds for Windows VC9 (32bit and 64bit)

    PHP_mongo扩展提供了丰富的功能,包括连接到MongoDB服务器,创建和查询集合,执行聚合操作,处理索引,以及处理复杂的文档结构。此外,1.3.1版本可能包含一些性能优化和错误修复,这些都是从早期版本升级的重要原因...

    php5.4、5.5、5.6的php_mongo-1.6.6扩展

    总的来说,php_mongo-1.6.6扩展是PHP与MongoDB之间的一个桥梁,允许开发人员使用熟悉的PHP语法操作非关系型数据库。虽然现在已被新的mongodb扩展所取代,但对于还在使用PHP 5.4到5.6的项目来说,这是一个重要的工具...

    php_mongo.dll各版本

    《PHP扩展php_mongo.dll详解及其在不同PHP版本中的应用》 PHP作为一款广泛应用的开源脚本语言,其丰富的扩展库极大地增强了其功能。在处理MongoDB数据存储时,php_mongo.dll扩展扮演了关键角色。本文将深入探讨...

    php_mongo-1.3.0

    总之,php_mongo-1.3.0扩展为PHP开发者提供了方便快捷的MongoDB接口,通过这一扩展,可以在PHP环境中高效地管理和操作MongoDB数据库,从而满足各种Web应用程序的数据需求。在实际应用中,正确选择和安装合适的DLL...

    php_mongo-1.6.0-5.3-ts-vc9-x86

    为了在 PHP 环境中使用这个扩展,你需要按照以下步骤操作: 1. 确保你的 PHP 环境是 5.3 版本,且为线程安全的 x86 构建。 2. 将 `php_mongo.dll` 文件复制到 PHP 的 `ext` 扩展目录下。 3. 在 `php.ini` 配置文件中...

    PHP扩展mongo 5.4.3

    Mongo是一款用于PHP开发的NoSQL数据库,php_mongo.dll是可以由PHP操作mongoDB数据库,便于在windows下开发学习,适合于5.4.3版本的64位的windows.

    php5.5 mongodb 驱动 dll文件 32+64位 php_mongo.dll

    标题中的“php5.5 mongodb 驱动 dll文件 32+64位 php_mongo.dll”指的是一款适用于PHP 5.5版本的MongoDB数据库驱动程序,该驱动程序包含了32位和64位两种系统环境下的动态链接库(DLL)文件——php_mongo.dll...

    php5.6mongo扩展

    PHP 的 MongoDB 扩展则提供了原生的 PHP 类和方法,使得开发者可以轻松地进行数据存储、查询和操作。 首先,让我们深入了解 PHP 5.6 中的 MongoDB 扩展的基本组件: 1. **MongoDB 驱动**:这是连接到 MongoDB ...

    centos php5.6环境安装 mongo.so扩展

    本案例聚焦于“CentOS PHP5.6环境下安装mongo.so扩展”,这是一个用于连接和操作MongoDB数据库的PHP扩展。MongoDB是一个高性能、无模式的分布式文档型数据库,而mongo.so是PHP与MongoDB进行交互的接口。 首先,我们...

    php5.4常用dll文件php_redis、php_memcache、php_mongo

    在标题和描述中提到的"php5.4常用dll文件php_redis、php_memcache、php_mongo"是指PHP 5.4版本中常用的三个动态链接库(DLL)扩展,它们分别对应于Redis、Memcache和MongoDB这三种不同的数据存储解决方案。...

    php_mongo.dll

    标题中的"php_mongo.dll"是一个PHP扩展模块,专门用于在PHP环境中与MongoDB数据库进行交互。MongoDB是一种流行的开源、分布式文档型数据库,而PHP是广泛使用的服务器端脚本语言,尤其适合Web开发。"php_mongo.dll"是...

    apache配置mongo的php_mongo.dll

    在本案例中,我们将探讨如何在Apache服务器上配置PHP以使用`php_mongo.dll`扩展,以便于PHP能够连接和操作MongoDB。 首先,`php_mongo.dll`是PHP的一个扩展,它允许PHP代码直接与MongoDB数据库进行通信。这个扩展...

    php_mongo.dll php5.3 vc6

    标题中的"php_mongo.dll php5.3 vc6"指的是PHP的一个扩展模块,用于连接和操作MongoDB数据库。这个特定的版本是为PHP 5.3编译的,并且使用了Visual C++ 6 (VC6)作为编译器。在PHP环境中,扩展通常以动态链接库(DLL...

Global site tag (gtag.js) - Google Analytics