PHP操作mongodb
基础教程: 1.连接mongo数据库服务器。 语法范例: ?php$connection = new MongoClient(); // 连接到本地数据库,默认端口为27017.即:localhost:27017$connection = new MongoClient( mongodb://example.com ); // 连接远程数据库,默认端口为27017$connect
基础教程:
1.连接mongo数据库服务器。
语法范例:
<?php $connection = new MongoClient(); // 连接到本地数据库,默认端口为27017.即:localhost:27017 $connection = new MongoClient( "mongodb://example.com" ); // 连接远程数据库,默认端口为27017 $connection = new MongoClient( "mongodb://example.com:65432" ); // 连接远程数据库,端口号为指定的端口号。 ?>
2.连接一个数据库
语法范例:
<?php $connection = new MongoClient();//连接到本地数据库,默认端口:27017
$db = $connection->dbname;//选择数据库名为dbname的数据库 ?>
注意:不要写错数据库名,否则你回不经意间生成一个数据库,这会导致数据库混乱。
以下程序会因拼写错误生成两个数据库:
<?php
$connection = new MongoClient();
$db = $connection->mybiloglongdbname;//连接一个数据库
$db = $connection->mybiloglongdbanme;//连接一个不一样名字的数据库
?>
3.连接一个数据库集合
获取一个集合和连接一个数据库语法是相同的。
语法范例:
<?php
$connection = new MongoClient();
$db = $connection->baz; $collection = $db->foobar;//选择一个集合
//也可以直接选择一个数据库和一个集合
$collection = $connection->baz->foobar;
?>
4.插入一个文档
关联数组是最基本的结构,它保存到集合中。
一些随机的"文档"可以是:
<?php
$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")
);
?>
一个数字索引数组通常按以下情况作为一个数组来存储:关键字从0开始,不间断。或者作为一个对象
:数组的关键字不是从0开始,中间会有间断。
插入这个文档,可以用这个函数 MongoCollection::insert():
<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;
$collection->insert($doc); ?>
5,查找一个集合使用 MongoCollection::findOne()
为了能搜索出集合数据,我们事先已经在数据库中存储了相应的数据。我们只需要一个简单的方法
MongoCollection::findOne() 便可以从集合中取到唯一的文档。这个方法适用于:只有唯一的一条数据匹配
查询数据。
实例:
<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;
$document = $collection->findOne();
var_dump($document);
?>
array(6) { ["_id"]=> object(MongoId)#8 (1) { ["$id"]=> string(24) "4e2995576803fab768000000" } ["name"]=> string(7) "MongoDB" ["type"]=> string(8) "database" ["count"]=> int(1) ["info"]=> array(2) { ["x"]=> int(203) ["y"]=> int(102) } ["versions"]=> array(3) { [0]=> string(5) "0.9.7" [1]=> string(5) "0.9.8" [2]=> string(5) "0.9.9" } }
如果文档没有定义主键字段,驱动程序会自动添加一个。
若你定义一个你自己的_id字段,它必须对于整个集合是独一无二的。
例子:
<?php
$connection = new MongoClient();
$db = $connection->datebase;
$db->foo->insert(array("_id"=>1));
//下面这个将抛出一个异常
$db->foo->insert(array("_id"=>1));
//下面这个是正确的,因为这个是在另外一个集合中
$db->bar->insert(array("_id"=>1));
?>
也就是说驱动程序不必等待数据库去确认写,也不必抛出复制_id的异常。
6.添加多个文档
为了让我们做更多有意思的事情,我们来添加许多简单的文档给集合。
这些文档仅仅是这种形式的数据array("i"=>value),我们可以在一个循环中相当有效率的添加上。
<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;
for($i=0;$i<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">{
$collection->insert(array('i'=>$i, "field{$i}"=>$i*2));
}
?>
7.统计一个集合中文档数目
当我们在集合中插入101个文档时,我们可以用方法MongoCollection::count()来统计文档数:
<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;
echo $collection->count();
?>
8.运用Cursor得到所有的文档
为了得到集合中所有的文档,我们将用MongoCollection::find()。
find()方法可以返回一个MongoCursor对象,这个对象允许我们可以迭代出符合我们查询条件的文档。
然后 查询所有文档,并打印出来。
<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;
$cursor = $collection->find();
foreach($cursor as $id=>$value)
{
echo "$id:";
var_dump($value);
}
?>
$id i是 文档的_id字段,$value是文档本身。
9.设置查询标准
我们可以用一条查询语句通过方法 MongoCollection::find()来获得集合中文档的一个子集。例如:如果你想找到 "i"字段的值为71的文档,我们可以按下面的做法去做:
<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;
$query = array('i'=71);
$cursor = $collection->find($query);
while($cursor->hasNext)
{
var_dump($cursor->getNext());
}
?>
array(2) { ["_id"]=> object(MongoId)#6 (0) { } ["i"]=> int(71) ["_ns"]=> "testCollection" }
10.查询一系列文档
我们可以从集合中查询一系列文档。
例如,如果你想获得‘i’>50的所有文档,我们可以按下面这样去写
<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;
$query = array("i"=>array('$gt'=>50));
$cursor = $coll->find($query);
while($cursor->hasNext())
{
var_dump($cursor->getNext());
}
?>
$connection = new MongoClient();
$collection = $connection->db->collectionName;
$query = array('i'=>array('$gt'=>20,"\$lte"=>30));
$cursor = $collection->find($query);
while($cursor->hasNext)
{
var_dump($cursor->getNext());
}
?>
<span>find</span><span>(</span> <span>{</span> <span>qty</span><span>:</span> <span>{</span> <span>$in</span><span>:</span> <span>[</span> <span>5</span><span>,</span> <span>15</span> <span>]</span> <span>}</span> <span>}</span> <span>)</span>
$ne 查询所有不等于该元素的数据;
$nin 查询不在范围内的所有数据
另外注意:单引号下$字符不需要转义字符,但是双引号下需要转义字符
11.创建一个索引
MongoDB支持索引,而且索引可以非常容易的加到集合中。
为了创建一个索引,你需要定义一个字段和方向:升序(1)或者降序(-1)。
以下创建了一个升序的索引在‘i’字段上:
<?php
$connection = new MongoClient();
$collection = $collection->database->collectionName();
$collection->ensureIndex(array("i"=>1));//创建一个在‘i’上升序的索引
$collection->ensureIndex(array("i"=>-1, "j"=>1));//创建一个在‘i’上降序,在‘j’上升序的索引。
?>
如果你对索引读取性能还不熟悉,你可以参考MongoCollection::ensureIndex()MongoCollection::ensureIndex()的相关文档。
参考:http://www.php.net/manual/zh/mongo.tutorial.connecting.php

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP는 현대 웹 개발, 특히 컨텐츠 관리 및 전자 상거래 플랫폼에서 중요합니다. 1) PHP는 Laravel 및 Symfony와 같은 풍부한 생태계와 강력한 프레임 워크 지원을 가지고 있습니다. 2) Opcache 및 Nginx를 통해 성능 최적화를 달성 할 수 있습니다. 3) PHP8.0은 성능을 향상시키기 위해 JIT 컴파일러를 소개합니다. 4) 클라우드 네이티브 애플리케이션은 Docker 및 Kubernetes를 통해 배포되어 유연성과 확장 성을 향상시킵니다.

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7

PHP가 많은 웹 사이트에서 선호되는 기술 스택 인 이유에는 사용 편의성, 강력한 커뮤니티 지원 및 광범위한 사용이 포함됩니다. 1) 배우고 사용하기 쉽고 초보자에게 적합합니다. 2) 거대한 개발자 커뮤니티와 풍부한 자원이 있습니다. 3) WordPress, Drupal 및 기타 플랫폼에서 널리 사용됩니다. 4) 웹 서버와 밀접하게 통합하여 개발 배포를 단순화합니다.

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.

PHP와 Python은 각각 고유 한 장점이 있으며 다양한 시나리오에 적합합니다. 1.PHP는 웹 개발에 적합하며 내장 웹 서버 및 풍부한 기능 라이브러리를 제공합니다. 2. Python은 간결한 구문과 강력한 표준 라이브러리가있는 데이터 과학 및 기계 학습에 적합합니다. 선택할 때 프로젝트 요구 사항에 따라 결정해야합니다.

PHP는 특히 빠른 개발 및 동적 컨텐츠를 처리하는 데 웹 개발에 적합하지만 데이터 과학 및 엔터프라이즈 수준의 애플리케이션에는 적합하지 않습니다. Python과 비교할 때 PHP는 웹 개발에 더 많은 장점이 있지만 데이터 과학 분야에서는 Python만큼 좋지 않습니다. Java와 비교할 때 PHP는 엔터프라이즈 레벨 애플리케이션에서 더 나빠지지만 웹 개발에서는 더 유연합니다. JavaScript와 비교할 때 PHP는 백엔드 개발에서 더 간결하지만 프론트 엔드 개발에서는 JavaScript만큼 좋지 않습니다.

PHP는 동적 웹 사이트를 구축하는 데 사용되며 해당 핵심 기능에는 다음이 포함됩니다. 1. 데이터베이스와 연결하여 동적 컨텐츠를 생성하고 웹 페이지를 실시간으로 생성합니다. 2. 사용자 상호 작용 및 양식 제출을 처리하고 입력을 확인하고 작업에 응답합니다. 3. 개인화 된 경험을 제공하기 위해 세션 및 사용자 인증을 관리합니다. 4. 성능을 최적화하고 모범 사례를 따라 웹 사이트 효율성 및 보안을 개선하십시오.
