MongoDB入門三:MongoDB shell


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() //請謹慎操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM