编译安装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#如果成功,生成一个mongodb.so扩展在lib/php/extensions/no-debug-non-zts-20151012/修改php.ini配置extension=mongodb.so
注:
以前版本用的是mongo.so扩展,老的php-mongodb api
在PHP7已经不支持了,至少目前不支持。
最新支持PHP7的mongodb 编译后 仅支持新版API(mongodb > 2.6.X版本)
参考资料
GITHUB: https://github.com/mongodb/
官网:
PHP官方: https://pecl.php.net/package/mongodb http://pecl.php.net/package/mongo [已废弃,目前只支持到PHP5.9999]
API手册:http://docs.php.net/manual/en/set.mongodb.php
Mongodb API 操作
初始化Mongodb连接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
$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 }} |
CURL操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
$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()); |
查询
1
2
3
4
5
6
7
8
9
|
$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 );} |
以上内容是小编给大家分享的PHP7之Mongodb API使用详解,希望大家喜欢。