MongoDB shell
MongDB shell是一個功能完備的Javascript解釋器,可以運行Javascript程序。也可以用於連接MongoDB服務器,執行腳本,對數據庫進行操作。類似於SQL Server的管理工具SSMS。
可以通過以下2條命令打開shell控制台:
> cd C:\Program Files\MongoDB 2.6 Standard\bin > mongo
如圖所示:
C:\Program Files\MongoDB 2.6 Standard 是MongoDB的安裝目錄。
在打開shell控制台之前請確保MongoDB服務已啟動,如何啟動MongoDB可以參考MongoDB入門一:安裝與配置。
MongoDB shell基本操作
1.添加
> db.blog.insert({"title":"aaa","content":"123","date":new Date()})
添加一條數據使用insert方法,MongoDB會隱式地創建集合blog。如果添加的文檔比較復雜,也可以先聲明再添加,例如:
> post = {"title":"aaa", "content":"123", "author":"Ming Li", "summary":"This article focuses on Asp.net MVC.", "date":new Date() } > db.blog.insert(post)
2.查詢
不帶參數的find方法會返回集合里面所有的文檔,shell只顯示20條。若只是想查看一條數據可以使用findOne方法,不帶參數的findOne會返回當前集合中的第一條數據。
findOne方法有一個帶參數的重載,參數類型是文檔,類似於find的帶參數的用法。如果查詢不到數據,findOne會返回null,如果查詢到了多條數據,findOne會返回第一條。
> db.blog.find() > db.blog.findOne()
如果想查詢集合blog中title為"aaa"的文檔,可以給find或findOne添加參數:
> db.blog.find({"title":"aaa"}) //可能會返回多條 > db.blog.findOne({"title":"aaa"}) //只返回1條,如果查詢不到數據,則返回null,這多么類似於.net中的FirstOrDefault方法
MongoDB還可以進行更為復雜的查詢,這里只做簡單介紹。
3.修改
修改使用update方法,update是一個至少有2個參數的方法。
假如集合book下有如下文檔:
{"_id":11,"item":"長安亂","publisher":"春風文藝出版社","author":"韓寒","price":20}
要修改書的價格為19可以使用下面的命令:
> db.book.update({"_id":11},{"price":19})
如果想給它增加屬性呢?假如我要使價格提高10,並且增加一個stock屬性,其值為5,可以使用下面的命令:
> db.book.update( {"_id":11}, { $.set:{stock:5}, $.inc:{price:10} } )
修改之后的文檔:
{"_id":11,"item":"長安亂","publisher":"春風文藝出版社","author":"韓寒","price":29,"stock":5}
MongoDB還可以進行更為復雜的修改操作,這里只做簡單介紹。
4.刪除
remove用來從數據庫中永久性地刪除文檔。在不使用任何參數的情況下,它會刪除集合內的所有文檔。它也可以接受一個文檔類型的參數以限定條件。
例如下面的命令會刪除blog中title為aaa的文檔:
> db.blog.remove({"title":"aaa"})
shell的其他常用命令
1.查看db下的所有命令或方法
> db.help()
2.切換到數據庫test,如果test不存在會自動創建
> use test
3.刪除當前連接的數據庫
> db.dropDatabase() //請謹慎操作
4.查詢本地所有數據庫名稱
> show dbs
5.查詢當前數據庫下的所有集合
show collections
6.查詢當前集合下的文檔個數
db.collection.count() //示例:db.blog.count()
7.刪除某一個collection
db.collectionName.drop() //請謹慎操作