通過php的MongoDB driver連線Azure的DocumentDB PaaS

衡子發表於2016-10-04

Azure的DocumentDB是NoSQL型別的資料庫。它還可以和目前流行的mongodb相容,採用mongodb的driver可以直接連線Azure的DucumentDB。

目前在國內的Azure上,DocumentDB已經正式商用了,相容mongodb的版本目前還在preview階段。

本文將介紹如何建立,並通過php的mongodb的driver連線documentDB。

一 在Azure的管理介面上建立DocumentDB:

1 點選portal左上角的"+"號,然後輸入documentdb,回車:

2 選擇DucumentDB-Protocol Support for MongoDB (preview):

中間出現需要accept preview的選項,按接受。

3 點選Create後出現如下對話方塊,按所需內容進行填寫:

4 幾分鐘後可以看到建立的DocumentDB已經上線:

5 建立db和collection:

點選建立的DocumentDB,在Overview中選擇add database:

輸入database的名字:

建立成功後,點選這個database:

進入到Database後,點選add collection:

在出現的對話方塊中輸入:

可以根據自己的需要,選擇相應performance的服務。

幾秒鐘,collection就建立好了。

6 記錄連結字串,在DocumentDB的中有一個選項叫Connection String,點選,並複製connection string:

 

二 在CentOS上安裝php mongo driver

1 建立epel和mongo的repo

在/etc/yum.repos.d下,增加兩個檔案:

Epel.repo
[epel]
name=epel
baseurl=http://mirrors.sohu.com/fedora-epel/6/$basearch
enabled=1
gpgcheck=0
mongo.repo
[mongodb-org-2.6]
name=MongoDB 2.6 Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

 

2 yum安裝相應的軟體:

yum install httpd -y
yum install php -y
yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath libmcrypt -y
yum install openssl-devel -y
yum install -y mongodb-org
yum install php-pecl-mongo

 

php-pecl-mongo也可以採用手工的安裝方式:

下載mongodb擴充套件

wget http://pecl.php.net/get/mongodb-1.1.8.tgz
tar vxf mongodb-1.1.8.tgz
mv mongodb-1.1.8 /usr/local/php-mongodb
cd /usr/local/php-mongodb/
./configure --with-php-config=/usr/bin/php-config
Make && make install
echo 'extension = mongo.so' > /etc/php.d/mongodb.ini

但這種安裝需要注意各個版本的相容關係。

 

3 在php中建立與DocumentDB的連線

在/var/www/html中建立index.php

<?php
//phpinfo();
  $mongo = new mongo('mongodb://hipomdb01:xxxx==@hipomdb01.documents.azure.cn:10250/?ssl=true');
  var_dump($mongo);
  echo "<br>";
  $mongodb = $mongo->mydb;
  var_dump($mongodb);
  echo "<br>";
  $collection = $mongodb->selectCollection('stu');
  var_dump($collection);
  for ($i=0; $i<=200; $i++){
    $array= array('_id'=>$i+1,'sn'=>$i+1,'name'=>'zhang san'+$i,'gender'=>'male','age'=>8);
    $collection->insert($array); }
  echo "<br>";
  echo 'count:' .$collection->count()."<br>";
?>

通過瀏覽器進行瀏覽,看到如下內容:

說明資料已經插入成功。

相關文章