21.30 mongodb建立集合、數據管理

21.30 mongodb建立集合、數據管理

MongoDB建立集合:

  • db.createCollection("mycol", { capped : true, size : 6142800, max : 10000 } ) //語法:db.createCollection(name,options)
  • name就是集合的名字,options可選,用來配置集合的參數,參數以下
  • capped true/false (可選)若是爲true,則啓用封頂集合。封頂集合是固定大小的集合,當它達到其最大大小,會自動覆蓋最先的條目。若是指定true,則也須要指定尺寸參數。
  • autoindexID true/false (可選)若是爲true,自動建立索引_id字段的默認值是false。
  • size (可選)指定最大大小字節封頂集合。若是封頂若是是 true,那麼你還須要指定這個字段。單位B
  • max (可選)指定封頂集合容許在文件的最大數量。
> use db1
switched to db db1
> db.auth('test1','123aaa')
1
> db.createCollection("mycol", { capped : true, size : 6142800, max : 10000 } )  
##db.createCollection("mycol",  //建立集合、集合名爲mycol
##capped:true  //是否封頂(可選),true則啓用;當達到其最大值,則會自動覆蓋最先的條目
##size:6142800  //指定最大大小字節封頂集合(可選,若是封頂爲false 則不須要size)
##max:10000  //(可選)指定封頂集合容許在文件的最大數量。 
{ "ok" : 1 }
>

MongoDB數據管理:

  • show collections //查看集合,或者使用show tables
  • db.Account.insert({AccountID:1,UserName:"123",password:"123456"}) //若是集合不存在,直接插入數據,則mongodb會自動建立集合
  • db.Account.update({AccountID:1},{"$set":{"Age":20}}) //更新
  • db.Account.find() //查看全部文檔
  • db.Account.find({AccountID:1}) //根據條件查詢
  • db.Account.remove({AccountID:1}) //根據條件刪除
  • db.Account.drop() //刪除全部文檔,即刪除集合
  • use dbname //先進入對應的庫
  • db.printCollectionStats() // 而後查看集合狀態
> show tables    ##查看集合;
mycol
> show collections
mycol
> db.Account.insert({AccountID:1,UserName:"123",password:"123456"})  
##針對Account集合插入數據一、若集合不存在 則會自動建立;
WriteResult({ "nInserted" : 1 })
> db.Account.insert({AccountID:2,UserName:"zhangsan",password:"123456"})
WriteResult({ "nInserted" : 1 })
> show tables
Account
mycol
> db.Account.update({AccountID:1},{"$set":{"Age":20}})
##更新數據1,添加一條記錄Age
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.Account.find()
##查看全部文檔;
{ "_id" : ObjectId("59e71135f9409385015e9545"), "AccountID" : 1, "UserName" : "123", "password" : "123456", "Age" : 20 }
{ "_id" : ObjectId("59e71143f9409385015e9546"), "AccountID" : 2, "UserName" : "zhangsan", "password" : "123456" }
> db.Account.find({AccountID:1})
##根據條件查詢文檔;
{ "_id" : ObjectId("59e71135f9409385015e9545"), "AccountID" : 1, "UserName" : "123", "password" : "123456", "Age" : 20 }
> db.Account.remove({AccountID:1})
##根據條件刪除文檔;
WriteResult({ "nRemoved" : 1 })
> db.Account.find()
{ "_id" : ObjectId("59e71143f9409385015e9546"), "AccountID" : 2, "UserName" : "zhangsan", "password" : "123456" }
> db.Account.drop()
##刪除全部文檔、即刪除該集合;
true
> show tables
mycol
> db.printCollectionStats()  
##查看集合狀態(和mysql查看錶同樣)
mycol
{
	"ns" : "db1.mycol",
	"size" : 0,
	"count" : 0,
	"storageSize" : 4096,
	"capped" : true,
	"max" : 10000,
	"maxSize" : 6142976,
……此處省略……
>

21.31 PHP的mongodb擴展

法1:安裝mongodb.sophp

cd /usr/local/src/
 git clone https://github.com/mongodb/mongo-php-driver
 cd mongo-php-driver
 git submodule update --init
 /usr/local/php/bin/phpize
 ./configure --with-php-config=/usr/local/php/bin/php-config
 make && make install
 vi /usr/local/php/etc/php.ini //增長 extension = mongodb.so
 /usr/local/php/bin/php -m

法2:安裝mongodb.so (咱們使用這個方法)
這種方法就是到pecl官網上下載mongodb的擴展源碼包,安裝html

cd /usr/local/src/
 wget https://pecl.php.net/get/mongodb-1.3.0.tgz 
 tar zxvf mongodb-1.3.0.tgz
 cd mongodb-1.3.0
 /usr/local/php/bin/phpize    ##nginx用的是php-fpm,路徑注意
 ./configure --with-php-config=/usr/local/php/bin/php-config
 make && make install
 vi /usr/local/php/etc/php.ini //增長 extension = mongodb.so
 /usr/local/php/bin/php -m
/etc/init.d/php-fpm restart ##準備就緒以後,咱們重啓php服務(若是是Apache的話,就重啓httpd)

21.32 PHP的mongo擴展

到pecl官網上下載mongo的擴展源碼包(和mongodb.so步驟差很少)mysql

cd /usr/local/src/
 wget https://pecl.php.net/get/mongo-1.6.16.tgz 
 tar zxvf mongodb-1.6.16.tgz
 cd mongodb-1.6.16
 /usr/local/php/bin/phpize   ##nginx用的是php-fpm,路徑注意
 ./configure --with-php-config=/usr/local/php/bin/php-config
 make && make install
 vi /usr/local/php/etc/php.ini //增長 extension = mongo.so
 /usr/local/php/bin/php -m
/etc/init.d/php-fpm restart ##準備就緒以後,咱們重啓php服務(若是是Apache的話,就重啓httpd)

測試mongo擴展:nginx

參考文檔 https://docs.mongodb.com/ecosystem/drivers/php/
http://www.runoob.com/mongodb/mongodb-php.html
vi /usr/local/apache2/htdocs/1.php //增長 <?php
$m = new MongoClient(); // 鏈接
$db = $m->test; // 獲取名稱爲 "test" 的數據庫
$collection = $db->createCollection("runoob");
echo "集合建立成功";
?>
curl localhost/1.phpgit

說明:mongodb.so和mongo.so拓展的區別;
mongodb.so針對php7.0以上版本 。新版本
mongo.so針對php5.x系列版本。老版本github

相關文章
相關標籤/搜索