摘要:旨在為應用提供可擴展的高性能數據存儲解決方案。執行命令可以顯示當前數據庫對象或集合。第二個指定那些列顯示和不顯示表示不顯示表示顯示。教程教程想要讀取從條記錄后條記錄,相當于中。當查詢時同時使用,無論位置先后最后執行順序再再。
一、MongoDB 簡介MongoDB 是一個基于分布式文件存儲的數據庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。
MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。
MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數據庫系統。
MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。
二、Linux平臺安裝MongoDB 1.下載安裝下載地址:https://www.mongodb.com/downl...
下載完安裝包,并解壓 tgz(以下演示的是 64 位 Linux上的安裝。
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz # 下載 tar -zxvf mongodb-linux-x86_64-3.0.6.tgz # 解壓 sudo mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb # 將解壓包拷貝到指定目錄
MongoDB 的可執行文件位于 bin 目錄下,所以可以將其添加到 PATH 路徑中:
export PATH=/bin:$PATH // 即,這樣的 export PATH=/usr/local/mongodb/bin:$PATH
MongoDB的數據存儲在data目錄的db目錄下,但是這個目錄在安裝過程不會自動創建,所以你需要手動創建data目錄,并在data目錄中創建db目錄。
以下實例中我們將data目錄創建于根目錄下(/)。
注意:/data/db 是 MongoDB 默認的啟動的數據庫路徑(--dbpath)。
mkdir -p /data/db3.命令行中運行 MongoDB 服務
你可以再命令行中執行mongo安裝目錄中的bin目錄執行mongod命令來啟動mongdb服務。
注意:如果你的數據庫目錄不是/data/db,可以通過 --dbpath 來指定。
$ ./mongod
98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission
如果出現這樣的問題,可以,使用下邊的命令進行權限修改:
sudo chown -R `id -u` /data/db4.MongoDB后臺管理 Shell
如果你需要進入MongoDB后臺管理,你需要先打開mongodb裝目錄的下的bin目錄,然后執行mongo命令文件。
MongoDB Shell是MongoDB自帶的交互式Javascript shell,用來對MongoDB進行操作和管理的交互式環境。
當你進入mongoDB后臺后,它默認會鏈接到 test 文檔(數據庫):
重開一個窗口,然后進入MongoDB后臺
$ cd /usr/local/mongodb/bin $ ./mongo MongoDB shell version: 3.0.6 connecting to: test Welcome to the MongoDB shell. ……
讓我們插入一些簡單的數據,并對插入的數據進行檢索:
> db.corwien.insert({name:"corwien"}) WriteResult({ "nInserted" : 1 }) > db.corwien.find() { "_id" : ObjectId("5942b5a247b748bc9bd3276a"), "name" : "corwien" } >
第一個命令將name "corwien" 插入到 corwien 集合的 name 字段中。
5.MongoDb web 用戶界面MongoDB 提供了簡單的 HTTP 用戶界面。 如果你想啟用該功能,需要在啟動的時候指定參數 --rest 。
$ ./mongod --dbpath=/data/db --rest
MongoDB 的 Web 界面訪問端口比服務的端口多1000。
如果你的MongoDB運行端口使用默認的27017,你可以在端口號為28017訪問web用戶界面,即地址為:http://localhost:28017。
不管我們學習什么數據庫都應該學習其中的基礎概念,在mongodb中基本的概念是文檔、集合、數據庫,下面我們挨個介紹。
下表將幫助您更容易理解Mongo中的一些概念:
通過下圖實例,我們也可以更直觀的的了解Mongo中的一些概念:
2.數據庫一個mongodb中可以建立多個數據庫。
MongoDB的默認數據庫為"db",該數據庫存儲在data目錄中。
MongoDB的單個實例可以容納多個獨立的數據庫,每一個都有自己的集合和權限,不同的數據庫也放置在不同的文件中。
"show dbs" 命令可以顯示所有數據的列表。
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > show dbs local 0.078GB test 0.078GB >
執行 db 命令可以顯示當前數據庫對象或集合。
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > db test >
運行use命令,可以連接到一個指定的數據庫。
> use local switched to db local > db local >3.文檔
文檔是一組鍵值(key-value)對(即BSON)。MongoDB 的文檔不需要設置相同的字段,并且相同的字段不需要相同的數據類型,這與關系型數據庫有很大的區別,也是 MongoDB 非常突出的特點。
一個簡單的文檔例子如下:
{"site":"www.runoob.com", "name":"菜鳥教程"}三、MongoDB數據庫創建和刪除 1、創建
use DATABASE_NAME
如果數據庫不存在,則創建數據庫,否則切換到指定數據庫。
> use books switched to db books > show dbs local 0.078GB test 0.078GB > db.info.insert({"name":"Jack Ma"}) WriteResult({ "nInserted" : 1 }) > show dbs books 0.078GB local 0.078GB test 0.078GB
可以看到,我們剛創建的數據庫 runoob 并不在數據庫的列表中, 要顯示它,我們需要向 runoob 數據庫插入一些數據。
2、刪除MongoDB 刪除數據庫的語法格式如下:
db.dropDatabase()
刪除當前數據庫,默認為 test,你可以使用 db 命令查看當前數據庫名。
> show dbs books 0.078GB local 0.078GB test 0.078GB > db.dropDatabase() { "dropped" : "books", "ok" : 1 } > show dbs local 0.078GB test 0.078GB > use test四、MongoDB 插入文檔
解釋幾個縮寫吧,免得大家幸苦尋找:
$gt -------- greater than $gte --------- gt equal $lt -------- less than $lte --------- lt equal $ne ----------- not equal
文檔插入數據:
> db.users.insert({"address":{"city":"guangzhou","state":"guangdong"},"tags":["music","cricket","blogs"],}) WriteResult({ "nInserted" : 1 })
查看:
> db.users.find().pretty(); { "_id" : ObjectId("5943a224b4c9662dcc837ba0"), "name" : "kaiyi", "address" : "beijing" } { "_id" : ObjectId("5943b6cfb4c9662dcc837ba1"), "address" : { "city" : "guangzhou", "state" : "guangdong" }, "tags" : [ "music", "cricket", "blogs" ] }
給數組tags 添加索引:
為數組 tags 創建索引時,會為 music、cricket、blogs三個值建立多帶帶的索引。
> db.users.ensureIndex({"tags":1}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 2, "numIndexesAfter" : 3, "ok" : 1 }
創建索引后,我們可以這樣檢索集合的 tags 字段:
> db.users.find({tags:"cricket"}) { "_id" : ObjectId("5943b6cfb4c9662dcc837ba1"), "address" : { "city" : "guangzhou", "state" : "guangdong" }, "tags" : [ "music", "cricket", "blogs" ] } >
為了驗證我們使用使用了索引,可以使用 explain 命令:
> db.users.find({tags:"cricket"}).explain() { "queryPlanner" : { "plannerVersion" : 1, "namespace" : "test.users", "indexFilterSet" : false, "parsedQuery" : { "tags" : { "$eq" : "cricket" } }, "winningPlan" : { "stage" : "FETCH", "inputStage" : { "stage" : "IXSCAN", "keyPattern" : { "tags" : 1 }, "indexName" : "tags_1", "isMultiKey" : true, "direction" : "forward", "indexBounds" : { "tags" : [ "["cricket", "cricket"]" ] } } }, "rejectedPlans" : [ ] }, "serverInfo" : { "host" : "homestead", "port" : 27017, "version" : "3.0.6", "gitVersion" : "1ef45a23a4c5e3480ac919b28afcba3c615488f2" }, "ok" : 1 } >
其他查詢語句解釋:
db.col.find({},{"title":1,_id:0}).limit(2)
補充說明:
第一個 {} 放 where 條件,為空表示返回集合中所有文檔。
第二個 {} 指定那些列顯示和不顯示 (0表示不顯示 1表示顯示)。
> db.col.find({},{"title":1,_id:0}).limit(2) { "title" : "PHP 教程" } { "title" : "Java 教程" }
想要讀取從 10 條記錄后 100 條記錄,相當于 sql 中limit (10,100)。
> db.COLLECTION_NAME.find().skip(10).limit(100)
以上實例在集合中跳過前面 10 條返回 100 條數據。
skip 和 limit 結合就能實現分頁。
當查詢時同時使用sort,skip,limit,無論位置先后 最后執行順序 sort再skip再limit。
聚合db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
以上實例類似sql語句:
select by_user as _id, count(*) as num_tutorial from mycol group by by_user五、PHP7 MongDB 安裝與使用
本文教程只適合在 PHP7 的環境,如果你是 PHP5 環境,你可以參閱
PHP MongDB 安裝與使用。
1、PHP7 Mongdb 擴展安裝我們使用 pecl 命令來安裝:
文件下載的地址在:
/tmp/pear/download/mongodb-1.2.9.tgz
// $ /usr/local/php7/bin/pecl install mongodb pecl install mongodb
擦,出現這樣的錯誤
sudo apt-get install php7.0-mongodb
on terminal. For the OpenSSL error, try this
sudo apt-get install openssl
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19018.html
摘要:通過在文檔中嵌入文檔和數組面向文檔的方法能夠僅使用一條記錄來表現復雜的層次關系這與使用現代面向對象語言的開發者對數據的看法一致。在模式下會限制輸出信息數據庫命令輸出,副本集活動,連接接受事件,連接關閉事件。指定一個文件或。 預熱看我之前的文章Node學習記錄: mongodb 這個系列旨在系統的學習Mongodb 使用windows的同學可以看這篇文章MongoDB開發學習 學習目標 ...
摘要:在上安裝有兩種方法下載安裝包安裝使用安裝方式下載安裝包安裝注意在中不支持像方式,只好用方式來下載。再打開一個終端窗口,執行以下命令停止在開啟服務的控制臺,即可停止或者直接關閉開啟服務的控制臺。 在Mac上安裝MongoDB有兩種方法: 下載安裝包安裝 使用 brew 安裝 1. curl方式下載安裝包安裝 注意:在mac中不支持像wget方式,只好用curl方式來下載。 可以直接到...
摘要:在上安裝有兩種方法下載安裝包安裝使用安裝方式下載安裝包安裝注意在中不支持像方式,只好用方式來下載。再打開一個終端窗口,執行以下命令停止在開啟服務的控制臺,即可停止或者直接關閉開啟服務的控制臺。 在Mac上安裝MongoDB有兩種方法: 下載安裝包安裝 使用 brew 安裝 1. curl方式下載安裝包安裝 注意:在mac中不支持像wget方式,只好用curl方式來下載。 可以直接到...
摘要:操作選擇數據庫選擇或創建集合創建一個文檔測試插入文檔到集合文檔插入成功結果文檔插入成功選擇數據庫選擇或創建集合結果各種 1.安裝mongodb 服務 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz //下載 tar -zxvf mongodb-linux-x86_64-3.0.6.tgz /...
閱讀 3548·2021-08-31 09:39
閱讀 1854·2019-08-30 13:14
閱讀 2919·2019-08-30 13:02
閱讀 2769·2019-08-29 13:22
閱讀 2341·2019-08-26 13:54
閱讀 767·2019-08-26 13:45
閱讀 1586·2019-08-26 11:00
閱讀 982·2019-08-26 10:58