PHP7 컴파일 및 설치
PHP7 Mongdb 확장 컴파일 및 설치
#먼저 종속 라이브러리 설치 yum -y install openldap-develwget https://pecl.php.net /get /mongodb-1.1.1.tgz /home/server/php7/bin/phpize # 컴파일하는 PHP 환경에 따라 다릅니다./configure --with-php-config=/home/server/php7/bin/php- config make && make install #성공하면 lib/php/extensions/no-debug-non-zts-20151012/에서 mongodb.so 확장을 생성하고 php.ini 구성 Extension=mongodb.so
를 수정합니다. 참고:
이전 버전은 mongo.so 확장을 사용했으며, 이전 php-mongodb api
는 적어도 현재는 PHP7에서 더 이상 지원되지 않습니다.
PHP7을 지원하는 최신 mongodb는 새로운 버전의 API(mongodb > 2.6. 🎜>
PHP 공식 홈페이지: https://pecl.php.net/package/mongodb http://pecl .php.net/package/mongo [폐기됨, 현재 PHP5.9999만 지원]API 매뉴얼: http://docs.php.net/manual/en/set.mongodb.phpMongodb API 작업Mongodb 연결 초기화
$manager = new MongoDB/Driver/Manager("mongodb://127.0.0.1:27017"); var_dump($manager); object(MongoDB/Driver/Manager)#1 (3) { ["request_id"]=> int(1714636915) ["uri"]=> string(25) "mongodb://localhost:27017" ["cluster"]=> array(13) { ["mode"]=> string(6) "direct" ["state"]=> string(4) "born" ["request_id"]=> int(0) ["sockettimeoutms"]=> int(300000) ["last_reconnect"]=> int(0) ["uri"]=> string(25) "mongodb://localhost:27017" ["requires_auth"]=> int(0) ["nodes"]=> array(...) ["max_bson_size"]=> int(16777216) ["max_msg_size"]=> int(50331648) ["sec_latency_ms"]=> int(15) ["peers"]=> array(0) { } ["replSet"]=> NULL }}
$bulk = new MongoDB/Driver/BulkWrite(['ordered' => true]);$bulk->delete([]); $bulk->insert(['_id' => 1]); $bulk->insert(['_id' => 2]); $bulk->insert(['_id' => 3, 'hello' => 'world']);$bulk->update(['_id' => 3], ['$set' => ['hello' => 'earth']]); $bulk->insert(['_id' => 4, 'hello' => 'pluto']); $bulk->update(['_id' => 4], ['$set' => ['hello' => 'moon']]); $bulk->insert(['_id' => 3]); $bulk->insert(['_id' => 4]); $bulk->insert(['_id' => 5]); $manager = new MongoDB/Driver/Manager('mongodb://localhost:27017'); $writeConcern = new MongoDB/Driver/WriteConcern(MongoDB/Driver/WriteConcern::MAJORITY, 1000); try { $result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern); } catch (MongoDB/Driver/Exception/BulkWriteException $e) { $result = $e->getWriteResult(); // Check if the write concern could not be fulfilled if ($writeConcernError = $result->getWriteConcernError()) {printf("%s (%d): %s/n", $writeConcernError->getMessage(), $writeConcernError->getCode(), var_export($writeConcernError->getInfo(), true)); } // Check if any write operations did not complete at all foreach ($result->getWriteErrors() as $writeError) {printf("Operation#%d: %s (%d)/n", $writeError->getIndex(), $writeError->getMessage(), $writeError->getCode()); }} catch (MongoDB/Driver/Exception/Exception $e) { printf("Other error: %s/n", $e->getMessage()); exit;}printf("Inserted %d document(s)/n", $result->getInsertedCount()); printf("Updated %d document(s)/n", $result->getModifiedCount());
$filter = array();$options = array( /* Only return the following fields in the matching documents */ "projection" => array("title" => 1,"article" => 1, ), "sort" => array("views" => -1, ), "modifiers" => array('$comment' => "This is a query comment",'$maxTimeMS' => 100, ),);$query = new MongoDB/Driver/Query($filter, $options);$manager = new MongoDB/Driver/Manager("mongodb://localhost:27017"); $readPreference = new MongoDB/Driver/ReadPreference(MongoDB/Driver/ReadPreference::RP_PRIMARY);$cursor = $manager->executeQuery("databaseName.collectionName", $query, $readPreference); foreach($cursor as $document) { var_dump($document);}