MongoDB自學日記1——基本操作


      作為一個做底層及后台研發的,最近對NoSQL卻產生了濃厚的興趣,加入了一個DBA群,據說北京排的上號的DBA都在里面,然而里面基本都是Oracle系的,MySQL和MongoDB系的少之又少。學習靠不得別人,要和Oracle大佬們撕比尚需時日。

      廢話少說,在抱怨關系型數據庫的死板及開發效率,力推NoSQL之后,NoSQL的代表之一MongoDB也受過一些質疑,比如《Don't use mongoDB》一文。然而NoSQL的應用卻還是沒有停下,比如滴滴就是NoSQL。在去IOE的大趨勢下,阿里選的是MySQL,大部分公司基本也選的是MySQL(MySQL比MongoDB早)。大公司肯定不太願意,或者主動向新的數據庫遷移,因為代價太大,而且也由於公司及數據規模也必然趨於保守選擇(最近Oracle的盛會上看到剛發布的sharding特性,然而一般NoSQL早就支持了)。

      為什么要向MongoDB遷移,以及遷移會有帶來什么問題恐怕只有親身做過的大牛才能回答。一般的說法是因為NoSQL更適合於集群,大多數NoSQL的研發動機都是為了適應集群,NoSQL不像關系型數據庫那樣死板,比較輕量級。

1.基本操作

      創建數據庫並插入,MongDB是文檔型NoSQL數據庫,集合相當於關系型數據庫中的表,文檔相當於一行數據。語法與JavaScript類似。下面是一些基本的增刪改查操作。

創建數據庫

>Use myfirstdb

創建集合

>db.createCollections(“Company”);

插入一條數據

>db.Company.insert({uid:1, username: “Tom”, age: 25});

>WriteResult({ "nInserted" : 1 })

      查詢記錄:

查詢整個集合中的記錄

>db.Company.find();

查詢指定字段的記錄

>db.Company.find({username: “Jerry”});

      修改記錄:

>db.Company.update({username: “Truman”}, {$set: {age : 50}});

      刪除記錄:

>db.Company.remove({uid: 1});

 

2. Problems

      在Windows下嘗試搭建一個學習實驗環境碰到的問題。

      1.服務無法啟動的問題

      采用源碼包可能存在問題,所以直接使用安裝程序,即.msi文件。學習MongoDB解決的第一個問題就是如何啟動MongoDB服務並進入數據庫。MongoDB安裝完成后啟動:

$net start mongdb

      這時可能會報無法啟動服務的錯誤。Windows下可以先打開任務管理器,查看服務中是否已經有了MongoDB,如果有則可以先卸載MongoDB,之后重新安裝,再net start mongodb,若輸出MongoDB服務已經啟動,則執行mongo.exe即可進入數據庫命令行。

 

      2.服務無法啟動

      從控制面板中無法啟動服務,報錯,網上說的都不靠譜。

015-10-29T20:14:48.328+0800 W NETWORK  Failed to connect to 127.0.0.1:27017, reason: errno:10061 由於目標機器積極拒絕,無法連接。

      卸載mongodb服務並重裝后問題解決,然而這顯然不行,必須以熱方式解決。后來發現mongodb安裝數據目錄下會有一個.lock文件,刪除文件以后重啟服務就可以啟動了,但為什么會這樣還需要研究。Net start mongodb重啟服務。

      以上純屬個人淺見,初學歡迎探討指正~


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com