수색…


통사론

  1. 발견()

MongoDB와 PHP 사이의 모든 것

요구 사항

  • MongoDB의 서버는 (유형 보통 27017. 포트에서 실행 mongod MongoDB의 서버를 실행하는 명령 프롬프트에서)

  • MongoDB 확장이 설치된 cgi 또는 fpm으로 설치된 PHP (MongoDB 확장은 기본 PHP와 번들되지 않음)

  • 작곡가 라이브러리 (mongodb / mongodb). (프로젝트 루트에서 php composer.phar require "mongodb/mongodb=^1.0.0" 실행하려면 MongoDB 라이브러리를 설치하기 php composer.phar require "mongodb/mongodb=^1.0.0"php composer.phar require "mongodb/mongodb=^1.0.0" 합니다)

모든 것이 정상이면 계속 진행할 준비가되었습니다.

Php 설치 확인

확실하지 않은 경우 명령 프롬프트에서 php -v 를 실행하여 PHP 설치를 확인하면 다음과 같은 결과가 반환됩니다.

PHP 7.0.6 (cli) (built: Apr 28 2016 14:12:14) ( ZTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

MongoDB 설치 확인

mongo를 실행하여 MongoDB 설치 확인 mongo --versionMongoDB shell version: 3.2.6 을 반환합니다 MongoDB shell version: 3.2.6

작성기 설치 확인

php composer.phar --version 를 실행하여 Composer 설치를 확인하십시오. Composer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39Composer version 1.2-dev (3d09c17b489cd29a0c0b3b11e731987e7097797d) 2016-08-30 16:12:39


PHP에서 MongoDB에 연결하기

<?php

  //This path should point to Composer's autoloader from where your MongoDB library will be loaded
  require 'vendor/autoload.php';


 // when using custom username password
  try {
        $mongo = new MongoDB\Client('mongodb://username:password@localhost:27017');
        print_r($mongo->listDatabases());
  } catch (Exception $e) {
        echo $e->getMessage();
  }


 // when using default settings
  try {
        $mongo = new MongoDB\Client('mongodb://localhost:27017');
        print_r($mongo->listDatabases());
  } catch (Exception $e) {
        echo $e->getMessage();
  }

위 코드는 vendor/autoload.php 에 포함 된 MongoDB 작곡가 라이브러리 ( mongodb/mongodb )를 사용하여 port : 27017 에서 실행되는 MongoDB 서버에 연결합니다 . 다 괜찮 으면 연결하고 배열을 나열합니다. 예외가 발생하면 MongoDB 서버에 연결하여 메시지가 인쇄됩니다.


MongoDB에 CREATE (삽입)

<?php

 //MongoDB uses collection rather than Tables as in case on SQL.
 //Use $mongo instance to select the database and collection
 //NOTE: if database(here demo) and collection(here beers) are not found in MongoDB both will be created automatically by MongoDB.
  $collection = $mongo->demo->beers;

 //Using $collection we can insert one document into MongoDB
 //document is similar to row in SQL.
  $result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

 //Every inserted document will have a unique id.
  echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>

이 예제에서 우리는 이전에 Connecting to MongoDB from php 파트 Connecting to MongoDB from php 에서 사용 된 $ mongo 인스턴스를 사용합니다. MongoDB는 JSON 형식의 데이터 형식을 사용하므로 PHP에서는 MongoDB에 데이터를 삽입하기 위해 배열을 사용하고, 배열에서 Json으로 변환하고 반대의 경우는 mongo 라이브러리에서 수행합니다. MongoDB의 모든 문서에는 _id라는 고유 ID가 있습니다. 삽입하는 동안 $result->getInsertedId() ;


MongoDB에서 읽기 (찾기)

<?php
 //use find() method to query for records, where parameter will be array containing key value pair we need to find.
 $result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

 // all the data(result) returned as array
 // use for each  to filter the required keys
 foreach ($result as $entry) {
   echo $entry['_id'], ': ', $entry['name'], "\n";
 }

?>

MongoDB에 들르기

<?php

 $result = $collection->drop( [ 'name' => 'Hinterland'] );

 //return 1 if the drop was sucessfull and 0 for failure
 print_r($result->ok);

?>

$collection 수행 할 수있는 많은 메소드가있다. MongoDB의 공식 문서 를 보라.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow