国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - MongoDB - PHP中安裝使用mongodb數據庫

PHP中安裝使用mongodb數據庫

2020-05-04 17:37MongoDB教程網 MongoDB

最近有個項目,需要用php操作mongoDb數據,所以了解下mongoDb為此整理了下,有需要的小伙伴可以參考下

傳統數據庫中,我們要操作數據庫數據都要書寫大量的sql語句,而且在進行無規則數據的存儲時,傳統關系型數據庫建表時對不同字段的處理也顯得有些乏力,mongo應運而生,而且ajax技術的廣泛應用,json格式的廣泛接受,也使得mongo更貼近開發人員。

mongo簡介及應用場景

MongoDB是一個面向文檔的非關系型數據庫(NoSQL),使用json格式存儲。Mongo DB很好的實現了面向對象的思想(OO思想),在Mongo DB中 每一條記錄都是一個Document對象。Mongo DB最大的優勢在于所有的數據持久操作都無需開發人員手動編寫SQL語句,直接調用方法就可以輕松的實現CRUD操作。

mongo能應用在如下場景:

存儲大尺寸、低價值的數據
json及對象類型數據
網站緩存數據
評論、子評論類有明顯從屬關系數據
多服務器數據,其內置的MapReduce很容易現實全局遍歷。

安裝和使用mongodb

我們在官網 https://www.mongodb.org/ 上可以下載到其最新穩定版本 ,mongo是官方已經編譯好的,解壓后即可使用其命令都在bin目錄下。

使用前首先配置mongo.conf文件

 

復制代碼 代碼如下:
port=xxxxx                                  //代表端口號,如果不指定則默認為 27017
dbpath=/usr/local/mongodb/db                //數據庫路徑
logpath=/usr/local/mongodb/logs/mongodb.log //日志路徑
logappend=true                              //日志文件自動累加,而不是覆蓋
fork=ture                                   //以守護進程方式創建

 

 

數據庫和數據表都可以直接創建,即不用切換,直接使用,使用時即創建,mongo里還可以直接寫js腳本,可直接運行,mongo中如果不指定_id字段,mongo會自動添加一個。

mongo的各種命令

mongo的命令是其精髓,這些十分復雜的命令集合在一塊,使得mongo的查詢變得絢麗而高效。mongo內的每個表稱作一個collection(集合),使用命令類似于MySQL,切換到數據庫內直接對每一個collection操作。其命令由方法(func())、查詢體(寫在{}里)和操作符(由$開頭)組成。

基本命令

 

復制代碼 代碼如下:
show dbs                                //查看數據庫
use dbname                              //切換到數據庫
db.createCollection('collection')       //創建數據表
db.collection.drop()                    //刪除數據表
db.dropDatabase()                       //刪數據庫
db.collection.insert({data})            //插入數據
db.collection.find()                    //顯示數據表內全部內容

 

 

查詢體

 

復制代碼 代碼如下:
{key.attr.attr:value}                                       //普通式
{key:{$ne|$gt|$gte|$lt|$lte|$in|$nin|$all:value}}           //key滿足 $oper value的值
{$or|$and|$not|$nor:[{key1:{$gt:value}},{key2:{$ne:value}}]} //用$oper同時限定key1,key2的條件
{key:{$mod{8,2}}}                                           //取出key對8取余為2的值。
{key:{$exist:1}}                                            //取出key列存在的值。
{key:{$type:String|Double|Array|Date|Object|Boolean|......}}//查詢key類型為type的列
{key:{$regex:/pattern/}}                                    //通過正則查詢,效率較低
{$where:'this.attr.express.....'}                           //直接用where語句,二進制轉為JS運算,較慢

 

 

find()方法增強

 

復制代碼 代碼如下:
db.collection.find(query,{要取出的列:1,不需要的列:0})    
db.collection.find(query).skip(跳過的行數).limit(限制信息條數);
db.collection.find(query).explain()         //與MYSQL的解釋語句一樣。
db.collection.remove(query,[justone])   //如不指定query,全部刪除;[justone]默認為false意思是查詢到多個,但只刪一個。

 

 

update語句

 

復制代碼 代碼如下:
db.collection.update(query,{key:newvalue})   //注意:新值會覆蓋舊值,即數據只剩下語句中定義的key
db.collection.update(query,
{
    $set:{key:newvalue},
    $unset:{key:value},
    $rename:{key:value},
    $inc:{key:value},
    ......
},
{
    multi:true,     //改變所有符合條件的,默認為false
    upsert:true     //沒有的話剛添加,默認為false
}
)

 

 

游標

 

復制代碼 代碼如下:
var cursorName=db.collection.fund(query,...)[.skip(num).limit(num)] //創建游標
cursorName.hasNext()                                                //判斷是否有下一個
printjson(cursorName.next())                                        //輸出游標的下一個指向值
cursorName.forEach(function(Obj){process Obj})                      //遍歷操作游標

 

 

索引

 

復制代碼 代碼如下:
db.collection.getIndexes()                  //查看索引
db.collection.ensureIndex({key:1/-1[,key.attr:1/-1]},{unique:1(是否唯一)},{sparse:1(是否非空)})// 添加正序/倒序索引
db.collection.dropIndex({key:1/2})          //刪除索引
db.collection.reIndex()         //重建用了很多出現雜亂的索引

 

 

MapReduce

MapReduce是mongo中內置的一個非常強大的遍歷操作工具,使用它需要實現它的map和reduce兩個函數

 

復制代碼 代碼如下:
db.runCommand(
           {
             mapReduce: collection,             //要操作的數據表
             map: function(){emit(key1,key2)},  //對key1和key2進行數據映射
             reduce: function(key,value){},     //對key值和數據組value進行操作
             out: <output>,
             query: <document>,
             sort: <document>,
             limit: <number>,
             finalize: <function>,
             scope: <document>,
             jsMode: <boolean>,
             verbose: <boolean>
           }
         )


更多更詳細的命令可以在mongo的中文社區 http://docs.mongoing.com/manual-zh/ 找到。

 

mongo的用戶、數據導入導出和集群

用戶管理

MongoDB默認不開啟授權。可以在開啟服務器時添加 --auth 或者 --keyFile 選項開啟授權。使用配置文件的話,使用 security.authorization 或 security.keyFile 設置。

MongoDB提供 自帶角色, 每一個角色都為一種常見用例提供一個明確的作用。例如 read, readWrite, dbAdmin, 和 root 等角色。我們通過創建用戶,創建角色,給用戶分配/回收不同的角色來進行用戶管理。

添加角色時要先在admin數據庫中添加一個管理員角色,然后使用管理員角色在每個庫添加不同的角色。

 

復制代碼 代碼如下:
use admin;(切換到admin數據庫,對此庫操作)
db.createUser(
  {
    user: "username",
    pwd: "password",
    roles:
    [
      {
        role: "userAdminAnyDatabase",
        db: "admin"
      }
    ]
  }
)
use database;
db.auth('username','passwd');用超級管理員用戶登陸后,整個mongo數據庫皆可存取。

 

 

數據導入導出

我們使用mongo自帶的工具進行導入導出,在mongo/bin目錄下,最好導出csv格式,便于數據交換。

 

復制代碼 代碼如下:
./mongoexport -d dataname -c tablename -f key1,key2 -q 'query' -o ainname --csv//導出數據,默認為json格式
./mongoimport -d dataname -c tablename --type json --file ./path //導入數據,默認為json格式

 

 

mongo數據庫集群

打開mongod時添加選項 --replSet replname;
在mongo客戶端連接上一個mongod進程,進入admin數據庫,然后聲明mongoconf變量:

use admin;
var rsconf={_id:'replname',members[{_id:0,host:'xxx'},{_id:1,host:'xxy'}]};
用rs.initiatee(rsconf);來初始化集群,mongo會自動將id號小的設為primary,其他的mongod進程為secondary。

連接secondary進程,使用slaveOk()函數,來初始化從進程。
PHP中操作mongo數據庫
我們先為php添加mongo擴展(方法可看linux下的PHP )。然后,我們便可以在腳本中使用mongo類函數庫了。

不同于其他的類庫只有一個核心類,mongo有四個類,分別是:

Mongo類,基礎類,擁有連接、關閉連接、對全局數據庫的操作方法。
mongoDB類,郵Mongo類通過selectDB()方法得到,擁有表級的操作方法。
MongoCollection類,一般由Mongo->dbname->collection或直接用MongoDB類和數據庫名實例化得到,擁有對數據的基本操作。
MongoCursor類,由MongoCollection通過find()方法得到,擁有普通的游標遍歷操作。
以下是一個典型的mongo操作:

 

復制代碼 代碼如下:
$mongo=new Mongo();
$mongo->connect('host',port);
$collection=$mongo->dbname->collection;
$cursor=$collection->find();
$cursor->operate();
$mongo->close();

 

延伸 · 閱讀

精彩推薦
  • MongoDBMongoDB 內存使用情況分析

    MongoDB 內存使用情況分析

    都說 MongoDB 是個內存大戶,但是怎么知道它到底用了多少內存呢...

    MongoDB教程網10002020-09-29
  • MongoDB遷移sqlserver數據到MongoDb的方法

    遷移sqlserver數據到MongoDb的方法

    這篇文章主要介紹了遷移sqlserver數據到MongoDb的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    聽楓xl9682021-01-03
  • MongoDB分布式文檔存儲數據庫之MongoDB分片集群的問題

    分布式文檔存儲數據庫之MongoDB分片集群的問題

    這篇文章主要介紹了分布式文檔存儲數據庫之MongoDB分片集群的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋...

    Linux-18743072020-12-20
  • MongoDBmongodb基本命令實例小結

    mongodb基本命令實例小結

    這篇文章主要介紹了mongodb基本命令,結合實例形式總結分析了MongoDB數據庫切換、查看、刪除、查詢等基本命令用法與操作注意事項,需要的朋友可以參考下...

    dawn-liu3652020-05-26
  • MongoDBMongodb實現定時備份與恢復的方法教程

    Mongodb實現定時備份與恢復的方法教程

    這篇文章主要給大家介紹了Mongodb實現定時備份與恢復的方法教程,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面...

    chenjsh364522020-05-13
  • MongoDBMongoDB中javascript腳本編程簡介和入門實例

    MongoDB中javascript腳本編程簡介和入門實例

    作為一個數據庫,MongoDB有一個很大的優勢——它使用js管理數據庫,所以也能夠使用js腳本進行復雜的管理——這種方法非常靈活 ...

    MongoDB教程網6982020-04-24
  • MongoDBMongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下 ...

    Yangyi.He6132020-05-07
  • MongoDBMongoDB憑什么躋身數據庫排行前五

    MongoDB憑什么躋身數據庫排行前五

    MongoDB以比去年同期超出65.96分的成績繼續雄踞榜單前五,這個增幅在全榜僅次于PostgreSQL的77.99,而其相對于4月份的6.10分的增長也是僅次于微軟SQL Server排名...

    孫浩峰3892020-05-22
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: av激情在线| 欧美激情视频一区二区三区在线播放 | 亚洲欧美成人a毛片 | 成年人免费网站 | 精品亚洲一区二区三区 | 四虎影视在线观看 | 亚洲欧美激情精品一区二区 | 91精品国产综合久久久久 | 日韩精品在线一区二区 | 午夜视频污 | 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲精品久久久久久久久久久 | 亚洲成人免费在线播放 | 国产精品久久久久久久久久久久久 | 色婷婷国产精品综合在线观看 | 亚洲欧美高清 | 91福利资源站 | 精品一二三区在线观看 | 精品欧美一区二区三区久久久 | 久久国产精品一区二区 | 久久久久久久免费观看 | 欧美一区二区在线观看 | 日韩欧美一级片在线观看 | av在线一区二区 | 欧美色影院 | 精品久久久久久久中文字幕 | 欧美中文字幕一区二区三区亚洲 | 国产视频在线播放 | 欧美一区永久视频免费观看 | 国产毛片久久久 | 一区二区免费 | 四虎永久免费影视 | 2012中文版免费观看 | 黄色一级大片在线免费看产 | 91精品免费在线观看 | 欧美色欧美亚洲另类七区 | 久久久免费 | 欧美日韩国产在线播放 | 综合色婷婷 | 成人一区二区在线观看 | 一区二区三区四区av |