上一節我們講解了對於mongodb的一些認識和概念(見 ),那麼接下來就要切實步入mongodb的學習中了。
mongodb不像關係型資料庫有很強大的GUI用戶端,雖然mongodb也有,但功能和穩定性實在不敢恭維,所以操作mongodb我們大部分都是用類似cmd命令的方式(mongodb稱為shell操作)來完成,因此學好mongodb shell操作是非常重要的基礎。
一、準備工作
1、 下載mongoDB
:http://www.mongodb.org/downloads
選擇合適你的版本
相關文檔:http://www.mongodb.org/display/DOCS/Tutorial
2、 安裝mongoDB
A、 不解壓模式:
將下載下來的mongoDB-xxx.zip開啟,找到bin目錄,運行mongod.exe就可以啟動服務,預設連接埠27017,db儲存的路徑是系統C硬碟目錄的根目錄的/data/db目錄。也就是說,如果你的mongoDB-xxx.zip在E盤,那麼你需要在C盤下建立data/db目錄。mongoDB不會幫你建立這個目錄的。
然後運行mongo即可串連到test資料庫,你就可以進行資料操作。運行help顯示協助命令列。
B、 解壓模式
將下載下來的mongoDB-xxx.zip解壓到任意目錄,找到bin目錄,運行mongod.exe就可以啟動mongoDB,預設連接埠27017,db儲存的路徑是當前zip所在硬碟目錄的根目錄的/data/db目錄。也就是說,如果你的mongoDB-xxx.zip在E盤,那麼你需要在E盤下建立data/db目錄。mongoDB不會幫你建立這個目錄的。
然後運行mongo即可串連到test資料庫,你就可以進行資料操作。運行help顯示協助命令列。
3、 簡單測試
- > 2+4
- 6
- > db
- test
- > //第一次插入資料會建立資料庫
- Fri May 20 16:47:39 malformed UTF-8 character sequence at offset 27
- error2:(shellhelp1) exec failed: malformed UTF-8 character sequence at offset 27
- > db.foo.insert({id: 2011, userName: 'hoojo', age: 24, email: "hoojo_@126.com"});
- > db.foo.find();
- { "_id" : ObjectId("4dd62b0352a70cbe79e04f81"), "id" : 2011, "userName" : "hoojo",
- "age" : 24, "email" : "hoojo_@126.com" }
- >
上面完成了簡單運算,顯示當前使用的資料庫,以及添加資料、查詢資料操作
二、DB shell資料操作
shell命令操作文法和JavaScript很類似,其實控制台底層的查詢語句都是用JavaScript指令碼完成操作的。
Ø 資料庫
1、Help查看命令提示
- > help
- > db.help();
- > db.yourColl.help();
- > db.youColl.find().help();
- > rs.help();
2、切換/建立資料庫
- > use yourDB;
當建立一個集合(table)的時候會自動建立當前資料庫
3、查詢所有資料庫
- > show dbs;
4、刪除當前使用資料庫
- > db.dropDatabase();
5、從指定主機上複製資料庫
- > db.cloneDatabase(“127.0.0.1”);
將指定機器上的資料庫的資料複製到當前資料庫
6、從指定的機器上複製指定資料庫資料到某個資料庫
- > db.copyDatabase("mydb", "temp", "127.0.0.1");
將原生mydb的資料複製到temp資料庫中
7、修複當前資料庫
- > db.repairDatabase();
8、查看當前使用的資料庫
- > db.getName();
- > db;
db和getName方法是一樣的效果,都可以查詢當前使用的資料庫
9、顯示當前db狀態
- > db.stats();
10、當前db版本
- > db.version();
11、查看當前db的連結機器地址
- > db.getMongo();
Ø Collection聚集集合
1、建立一個聚集集合(table)
- > db.createCollection(“collName”, {size: 20, capped: 5, max: 100});
2、得到指定名稱的聚集集合(table)
- > db.getCollection("account");
3、得到當前db的所有聚集集合
- > db.getCollectionNames();
4、顯示當前db所有叢集索引的狀態
- > db.printCollectionStats();
Ø 使用者相關
1、添加一個使用者
- > db.addUser("name");
- > db.addUser("userName", "pwd123", true);
添加使用者、設定密碼、是否唯讀
2、資料庫認證、安全模式
- > db.auth("userName", "123123");
3、顯示當前所有使用者
- > show users;
4、刪除使用者
- > db.removeUser("userName");