iT邦幫忙

DAY 11
1

從無到有打造 RESTful API service系列 第 11

[API-d11] - MongoDB - Hello World!

  • 分享至 

  • xImage
  •  

小弟的規劃表 - http://blog.kerkerj.in/blog/2014/11/01/planning/

好讀版 - http://blog.kerkerj.in/blog/2014/10/11/api-d11/

今天先講在 Server 中如何操作 MongoDB

一樣開啟虛擬機,

我們在先前已經有先安裝過 MongoDB 了,因此,在 Ubuntu Server 中預設是開機啟動的

登入虛擬機吧~

登入虛擬機後,我們要進入 MongoDB,必須使用 mongo 這個 MongoDB Shell

$ mongo
MongoDB shell version: 2.6.4
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
  http://docs.mongodb.org/
Questions? Try the support group
  http://groups.google.com/group/mongodb-user
>  

為什麼不需要帳號密碼即可進入 MongoDB 呢,因為 MongoDB 預設是不需要做登入的

並且加上預設只能由本機存取,也就是說,外部連入的 IP 是進不了 MongoDB 的

這部分後面會再作說明。

傳統的 Table 在 MongoDB 中,稱之為 Collection

一筆 record 在 MongoDB 中,稱之為 document

進入 MongoDB 後,

就可以簡單操作一些指令:

查詢所有的 DB:

> show databases;
admin  (empty)
local  0.078GB








> use test;

use DBNAME 若 DBNAME 不存在於 MongoDB 中的話,

等同於建立一個新的 DB,意思就是我們不需要下 『建立 DB' 這個指令,

直接 use 就是一個新的 DB 了,不過這個 DB 會直到有 Collection 被新增才算真正的被建立

意即如果我們 use 了一個新的 DB,但是並沒有做任何新增 Collection 的動作就離開,

這個 DB 也不會被建立起來

當我們使用 use DBNAME 進入 DB 後:

新增 Collection

> db.createCollection("TestCollection")
{ "ok" : 1 }

此時 Collection 「TestCollection」 就被建立了, 可以使用:

新增資料:

example: db.TestCollection.insert(DATA);

DATA 就是 javascript 的 array map

> db.TestCollection.insert({data: "test_data", num: 2, arr: ["arr1", "arr2", "arr3"]});

查詢資料

example: db.TestCollection.find(WHERE_CONDITION);

> db.TestCollection.find({data: "test_data"});
{ "_id" : ObjectId("5430497db94bb4afe2f8b387"), "data" : "test_data", "num" : 2, "arr" : [ "arr1", "arr2", "arr3" ] }

查詢所有資料

> db.TestCollection.find();
{ "_id" : ObjectId("5430497db94bb4afe2f8b387"), "data" : "test_data", "num" : 2, "arr" : [ "arr1", "arr2", "arr3" ] }

example: db.TestCollection.update(WHERE_CONDITION, SET);

> db.TestCollection.update({data: "test_data"}, { $set: {num: 3} });
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

// 查看 num 是否從 2 變 3 了
> db.TestCollection.find({data: "test_data"});
{ "_id" : ObjectId("5430497db94bb4afe2f8b387"), "data" : "test_data", "num" : 3, "arr" : [ "arr1", "arr2", "arr3" ] }

exmaple: db.TestCollection.remove(WHERE_CONDITION);

> db.TestCollection.remove({data: "test_data"});







> db.TestCollection.drop();

查詢有哪些 Collection

> show collections;

砍掉目前所在的整個 DB:

> use test;
> db.dropDatabase();
{ "dropped" : "test", "ok" : 1 }

ctrl-D 離開 Mongo Shell

MongoDB 官網文件非常詳細,可以多看看

明天會用 Node.js 的 MongoDB driver 來操作 MongoDB!


上一篇
[API-d10] - Express - Hello World!
下一篇
[API-d12] - MongoDB - Hello World! (Client-side)
系列文
從無到有打造 RESTful API service30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言