MongoDB Quick Notes

Mac

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ brew update # 更新 brew
$ brew install mongodb # 安裝 MongoDB
$ brew upgrade mongodb # 更新 MongoDB
$ mongod # 啟動 MongoDB Server
$ mongo # 連線到 localhost:27017/test ,不需帳密。
* 27017 預設 port
* 28017 Web 界面 MongoDB Server 資訊類似 PHP Admin 。

<!--more-->

$ mkdir -p /data/db # 建立資料庫儲存的目錄。
$ chown `id -u` /data/db # 授權當前使用者目錄權限。
$ id -u # 列出當前使用者 uid
$ sudo plutil -p /var/db/dslocal/nodes/Default/users/[YourAccount].plist # OSX 底下的 /etc/shadow 。
$ mongod --dbpath /data/db # 設定資料庫資料目錄。

基本對照

SQL MongoDB
database database
table collection
row(record) documents
column field(key)
value value

Mongo shell

  • db 當前使用的資料庫。
  • show dbs 資料庫列表。
  • show collections 資料表清單。
  • use [dbname] 切換使用目標資料庫。
  • db.getSlibingDB('dbname') 取得資料庫參考物件。
  • db.dropDatabase() # 移除資料庫。
  • db.addUser( { user: "<user>", pwd: "<password>", roles: [<roles>] } ) # 加入使用者
  • db.auth('id', 'pwd') # 登入認證身份。
  • printjson(obj) 將物件以 JSON 格式輸出。
  • db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean>, size: <number>, max <number>} ) # 建立集合,主要的功能是用來開固定式集合,固定式集合不能刪除 Row,但可以移除整個資料表,一旦 capped 設為 true 就要指定 size,但如果要限制則必須在指定 max 。一旦超出 max 舊的資料就會被覆寫。
  • db.collection.drop() # 移除資料表。
  • db.collection.ensureIndex({name: [1|-1]}) # 建立索引
  • db.collection.getIndexes() # 取得索引
  • db.collection.dropIndex({name: 1}) # 移除索引

其他資料
snapshot
Performance
Munin
Indexes
B+Tree
Distributed System
Aggregate
SQL 到 MongoDB 對應表
Basic toturial

KineticJS 建立範圍選取功能

KineticJS 介紹

KineticJS 是一套針對 canvas 設計的函式庫,使得我們在操作使用 canvas 的時候相對簡單易懂。
這篇文章將會教您如何透過 KineticJS 在螢幕上(canvas)建立一些物件,然後可以透過拖拉選取範圍。

繼續閱讀

PHP 環境 OSX 10.9

更新 Mavericks 小牛之後會發現 httpd.conf 被取代了。不過舊的檔案放在 /private/etc/apache2/httpd.conf.pre-update

繼續閱讀

Grunt 系列(2) 設定

這篇教學將會解釋如何使用 Gruntfile 為你的專案設定任務。如果你還不知道什麼是 Gruntfile 請回到上一篇 Grunt 入門 閱讀。

繼續閱讀

Sails 實作筆記

何謂 sails.js


[sails](http://balderdashy.github.io/sails/) 其實就跟 `Rails` ,`ASP.NET MVC` 類似,是一個 MVC 的 Web 框架。目標是協助您快速的用 nodejs 開發出企業等級的網站(註:由於開發團隊仍在開發中,所以要採用前請先審慎評估XDD)。所以就跟其他框架一樣,他讓我們不用再重新造輪子,整合一般網站開發常用的功能,並且重點是支援許多 nodejs 特有的強項,特別是在開發聊天室這類的應用程式更顯得出效能。本篇文章僅僅透過實作一些基礎,讓我們快速的感受一下 sails 。
繼續閱讀

Grunt 系列(1) 基礎教學

Grunt 入門

GruntGrunt 擴充套件 都是透過 npm 來安裝和管理。Grunt 這個工具大概就等於 Ruby 中的 rake ,它可以透過一些設定讓你輕鬆完成一些例行性的任務,例如壓縮檔案,編譯 coffee less,搬移到目標目錄,單元測試等等。之後就可以透過一個指令,就把所有的事情做好。

安裝

為了能夠使用 Grunt 你必須安裝 grunt-cli 就是 Grunt 的 Command Line Interface 到您的系統。
安裝過程可能會需要 sudo 或這在 windows 底下使用管理者身份執行。

繼續閱讀