编译安装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使用详解,希望大家喜欢。