發表文章

目前顯示的是 六月, 2016的文章

解決 mongodb 無法啟動的問題

某天起床後 mongo 忽然活不回來了
查了一下錯誤訊息的 log:

Docs: https://docs.mongodb.org/manual
  Process: 120107 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=1/FAILURE)
  Process: 120104 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 120101 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 120099 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)

 1月 15 04:01:26 foso-test systemd[1]: Starting MongoDB Database Server...
 1月 15 04:01:29 foso-test mongod[120107]: about to fork child process, waiting until server is ready for connections.
 1月 15 04:01:29 foso-test mongod[120107]: forked process: 120112
 1月 15 04:01:29 foso-test systemd[1]: mongod.service: control process exited, code=exited status=1
 1月 15 04:01:29 foso-test systemd[1]: Failed to start MongoDB Database Server.



看起來應該是權限的問題: 發現很多人都遇到相同的狀況,主要有兩個資料夾勢必要擁有 mongod 這個權限擁有才可以。 所以大部分的解決說明都是這樣作:
chown -R mongod:mongod …

Firebase database 在 web 上面的基礎運用 (搜尋資料內容)

圖片
我們要在 firebase database 中取得資料,其實可以利用 key 的方式取得。就會非常的省事。只需要指定好 ref 的路徑。像這樣:

firebase.database().ref("/member/key").on("value",function(data){ console.log(data.val()); })
但是我們並不是一定會拿到key,很多情況下我們要搜尋某個值的存在,例如要找人名或電話號碼之類的。這時候我們需要另一個方式來達成:


firebase.database().ref("/member").orderByChild("mobile").equalTo("我的電話號碼").on('value', function(data) { console.log(data.val()); });
這時候 firebase 就會去幫你找出裡面的節點 mobile 是 我的電話號碼的資料啦!
其中 orderByChild 就是去找這個節點
equalTo 就是符合的資料內容


相關資料
Firebase database 在 web 上面的基礎運用 (讀取資料)
Firebase database 在 web 上面的基礎運用 (新增資料)
Firebase Doc

Firebase database 在 web 上面的基礎運用 (讀取資料)

圖片
上一篇
Firebase database 在 web 上面的基礎運用 (新增資料)
我們知道可以一直丟東西過去給 firebase 由於他是一個 nosql 的概念,所以資料正規並沒有像是一般的 sql 資料庫那麼嚴謹。
那我們要怎麼拿回我們的資料呢?

取得全部清單

firebase.database().ref("/member/").on('value', function(data) { console.log(data.val()); // console.log(data.val().mobile()); $.each(data.val(),function(k,v){ console.log(v); console.log(v.addr); }) });
由上面的例子看:
ref -> 路徑節點
firebase.database().ref("/member/") 表示我們要去找到 database 的/member/ 節點底下的東西,當然你如果要找得更精準可以一路往下找  firebase.database().ref("/member/某個 userid")

on -> 動作(接下來會介紹其他動作)
value -> 取得內容
function(data){}  -> 取回來的值放 data

接著我們就可以看到 consloe.log(data) 會長這樣:


其實就是一堆資料放在 object 中,如果我們要取得這裡面的資料就是 data.val();如果只要該筆資料的 key 可以用 data.key

Firebase database 在 web 上面的基礎運用 (新增資料)

圖片
會找到這邊來我們就不解釋什麼是 Firebase 了。在一些簡單的案子中我們可以直接用他的js sdk 進行資料的儲存,不用自己管 database。

1.載入環境
https://www.gstatic.com/firebasejs/live/3.0/firebase.js

// Set the configuration for your app // TODO: Replace with your project's config object var config = { apiKey: "請去 filebase申請", authDomain: "請去 filebase申請", databaseURL: "請去 filebase申請", storageBucket: "", }; firebase.initializeApp(config);
如此一來就可以呼叫來用了。

1.新增資料
var Data = { "name":"123", "phone":"0912345678" } firebase.database().ref("/member").push(Data);
很明顯地他可以直接把 json 拋給 firebase 存檔在 firebase 的後台上就可以查看。
多丟幾次他就會一直往下增加堆疊。然後會產生一組 key 用來辨識這筆資料。如果我們要抓到這隻 key的話:可以在後面加上.key
var Data = { "name":"123", "phone":"0912345678" } var Key = firebase.database().ref("/member").push(Data).key; console.log(Key);



在第一次使用的時候發現一個問題就是,他會跟你說權限有問題 Permission denied
這個時候需要…