HOME | 資料庫 | mongodb(一)

mongodb(一)

2018/02/07/15:33 , Post in 資料庫 , 評論(0) , 引用(0) , 閱讀(799) , Via 本站原創
mongodb是近幾年流行nosql資料庫中使用率最高的一種

mongodb與關聯式資料庫主要差在他是使用json儲存

事先不定義欄位,同時不保證一致性的資料庫

如果你需要很精確的數字與資料,需要交易或是rollback的功能,那就不適合使用mongodb

===安裝mongodb===

作業系統 ubuntu  mongodb版本2.6

apt-get install mongodb

因為後面可能需要使用python進行操作,順便裝一下python的模組

apt-get install python-pymongo

安裝好啟動後預設是listen 27017 port,可以使用指令mongo進入

===基本操作===

一開始是沒有任何權限設定的,進入後可以查看資料庫以及資料表(collections)

show dbs(查看資料庫)  show collections(查看資料表)

使用哪一個資料庫

use dbname

使用哪一個資料表

db.dbname.動作(find,update,insert,remove...)

===權限管理===

mongodb的的使用者是跟著資料庫走的,例如你有ABC三個資料庫

可以同時在三個資料庫都建立一個tszheng的帳號

在哪個資料庫新增帳號就是代表僅新增該資料庫的帳號,

use admin

db.addUser("username","passwd",true)   #true為唯讀帳號,不加則可讀寫

新增完畢之後,還需要修改設定檔/etc/mongodb.conf

有一個#auth = true,將#拿掉後重啟mongodb

下次再進入就強制需要登入了,登入方式如下

mongo進入後(這時候已經沒辦法show dbs了,所以要記得dbname)

先選擇資料庫 use dbname

db.auth("dbname","passwd") (登入)

如果回應1就表示登入成功了

===資料===

如前面所說的,mongodb是用json的方式儲存資料,資料大概長得像下面

{
        "_id" : ObjectId("5a7931de20be054518904450"),
        "ip" : "1.2.3.4",
        "datetime" : ISODate("2017-10-12T00:39:03Z"),
        "resp_time" : NumberLong(4),
        "type" : "udp",
        "idc" : NumberLong(1)
}

每一筆資料都有一個ObjectId為key,如一開始說的,他的欄位不需要事先定義

欄位也很自由,你可以這筆資料有四個欄位,下一筆資料有六個欄位,都不會影響整個資料庫運作。

另外如果這個mongodb資料庫要對外開放連線,則要修改設定檔/etc/mongodb.conf

中的bind_ip,設定能夠連線進來的IP後重啟服務即可。

發表評論

暱稱

網址

電郵

開啟HTML 開啟UBB 開啟表情 隱藏 記住我 [登入] [註冊]