1. 程式人生 > 其它 >資料庫-nosql-mongodb客戶端操作

資料庫-nosql-mongodb客戶端操作

技術標籤:資料庫

PHP客戶端操作

Linux上安裝 MongoDB PHP擴充套件

1、準備apache和php環境 
[[email protected]]#yum install httpd php php-pear php-devel -y
2、安裝MongoDB 的 PHP 擴充套件驅動 
[[email protected]]# yum install gcc gcc-c++ make -y 
安裝依賴包:
[[email protected]]# yum install openssl-devel -y 
安裝擴充套件:
[[email protected]
]
# pecl install mongo 修改php.ini檔案,在php.ini檔案中新增mongo配置,配置如下:extension=mongo.so [[email protected] ~]# vim /etc/php.ini

在這裡插入圖片描述

3、重啟服務
[[email protected] ~]# systemctl stop firewalld.service 
[[email protected] ~]# systemctl start  httpd
4、建立一個集合
[[email protected] ~]# vim /var/www/html/set.php
<?php 
$m
= new MongoClient(); $db = $m->test; $collection = $db->createCollection("student"); echo "集合建立成功"; ?> 5、插入文件 [[email protected] ~]# vim /var/www/html/insert.php <?php $m = new MongoClient(); // 連線到mongodb $db = $m->test; // 選擇一個數據庫 $collection = $db->student;
// 選擇集合 $document = array( "id" => 201, "name" => "張三", "sex" => "男", "age" => 20 ); $collection->insert($document); echo "資料插入成功"; ?> 6、查詢文件 [[email protected] ~]# vim /var/www/html/find.php <?php $m = new MongoClient(); // 連線到mongodb $db = $m->test; // 選擇一個數據庫 $collection = $db->student; // 選擇集合 $cursor = $collection->find(); // 迭代顯示文件標題 foreach ($cursor as $document) { echo $document["name"] . "\n"; } ?> 7、更新文件 [[email protected] ~]# vim /var/www/html/update.php <?php $m = new MongoClient(); // 連線到mongodb $db = $m->test; // 選擇一個數據庫 $collection = $db->student; // 選擇集合 // 更新文件 $collection->update(array("name"=>"張三"), array('$set'=>array("name"=>"李四"))); // 顯示更新後的文件 $cursor = $collection->find(); // 迴圈顯示文件標題 foreach ($cursor as $document) { echo $document["name"] . "\n"; } ?> 8、刪除文件 [[email protected] ~]# vim /var/www/html/remove.php <?php $m = new MongoClient(); // 連線到mongodb $db = $m->test; // 選擇一個數據庫 $collection = $db->student; // 選擇集合 // 移除文件 $collection->remove(array("name"=>"李四"), array("justOne" => true)); // 顯示可用文件資料 $cursor = $collection->find(); foreach ($cursor as $document) { echo $document["name"] . "\n"; } ?>

mongodb執行js指令碼

MongoDB有一個很大的優勢—它使用js管理資料庫,所以也能夠使用js指令碼進行復雜的管理。
mongodb 的shell是javascript實現的,如果直接使用js實現相應的功能則顯得很直觀和簡便。

使用js指令碼進行互動的優點與缺點
(1)無需任何驅動或語言支援;
(2)方便cron或管理員定時任務;
(3)注意點:任然是資料格式的問題;

js指令碼一般會用來執行以下任務
(1)備份;
(2)排程map-reduce命令;
(3)離線報告,離線任務;
(4)管理員定時任務;

mongodb shell 執行js指令碼的四種方式
1> 互動式 mongo shell

[[email protected] ~]# mongo
MongoDB Enterprise > use school
switched to db school
MongoDB Enterprise > db.student.find()
{ "_id" : ObjectId("601a4f56ae5aaf64dfbc6a0f"), "id" : 101, "name" : "xuexi", "age" : 23 }

2> mongo --eval 執行一段指令碼,不進入互動模式,直接在 OS 的命令列下執行一段mongodb指令碼。

[[email protected] ~]# mongo school --eval "printjson(db.student.findOne())"
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017/school
MongoDB server version: 3.4.7
{
	"_id" : ObjectId("601a4f56ae5aaf64dfbc6a0f"),
	"id" : 101,
	"name" : "xuexi",
	"age" : 23
}

3> 在OS命令列下,執行一個js檔案

[[email protected] ~]# echo  "printjson(db.student.findOne())" > print.js
[[email protected] ~]# mongo school print.js 
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017/school
MongoDB server version: 3.4.7
{
	"_id" : ObjectId("601a4f56ae5aaf64dfbc6a0f"),
	"id" : 101,
	"name" : "xuexi",
	"age" : 23
}

4> 在mongo shell 互動模式下,執行一個js檔案

[[email protected] ~]# mongo school
MongoDB Enterprise > load('/root/print.js')
{
	"_id" : ObjectId("601a4f56ae5aaf64dfbc6a0f"),
	"id" : 101,
	"name" : "xuexi",
	"age" : 23
}
true