mongoDB常用命令

目錄

 

       1 啓動MongoDB服務

2 進入mongoDb

3 數據庫

4 集合

5 文檔

6 $type 匹配

7 limit與skip

8 排序

9 索引

10 聚合


1 啓動MongoDB服務

MongoDB 目錄的 bin 目錄中執行 mongod.exe 文件

進入MongoDB\bin目錄下:
mongod --dbpath D:\Program Files\mongodb\data\db  (D:\Program Files\mongodb\爲mongoDB安裝路徑)

或者(初始化服務的情況)
啓動MongoDB服務
net start MongoDB

關閉MongoDB服務
net stop MongoDB

2 進入mongoDb

運行 bin目錄下mongo.exe

D:\Program Files\mongodb\bin\mongo.exe

3 數據庫

3.1 show dbs 命令可以顯示所有數據的列表

> show dbs
local  0.078GB
test   0.078GB

說明:
admin: 從權限的角度來看,這是"root"數據庫。要是將一個用戶添加到這個數據庫,這個用戶自動繼承所有數據庫的權限。一些特定的服務器端命令也只能從這個數據庫運行,比如列出所有的數據庫或者關閉服務器。
local: 這個數據永遠不會被複制,可以用來存儲限於本地單臺服務器的任意集合
config: 當Mongo用於分片設置時,config數據庫在內部使用,用於保存分片的相關信息

3.2 db 命令用於查看當前操作的文檔(數據庫)

> db
test
>

3.3 創建或切換庫

數據庫不存在則創建,存在則切換。需要有數據,show dbs纔會顯示。

命令:use <數據庫>

例:
> use myLocal
switched to db myLocal
>

3.4 數據庫插入數據

db.<數據庫>.insert({"name":"1111"});該處會自動創建集合

例:
> db.myLocalhost.insert({"name":"1111"})
WriteResult({ "nInserted" : 1 })

3.5 刪除當前數據庫

db.dropDatabase() { "dropped" : "runoob", "ok" : 1 }

4 集合

4.1 創建集合

語法格式:
db.createCollection(name, options)

參數說明:

    name: 要創建的集合名稱
    options: 可選參數, 指定有關內存大小及索引的選項

例:在 test 數據庫中創建 runoob 集合,需要先切換到test數據庫。

> use test
switched to db test
> db.createCollection("runoob")
{ "ok" : 1 }


或者:
> db.createCollection("mycol", { capped : true, autoIndexId : true, size : 
6142800, max : 10000 } )
{ "ok" : 1 }
>

4.2 查看已有集合

show collections 或者 show tables

> show collections
runoob
system.indexes

4.3 刪除集合

db.<集合>.drop()

例:刪除集合runoob

>db.runoob.drop()
true

5 文檔

5.1 插入文檔

db.<集合>.insert(document);集合不存在時會自動創建。

例:向col集合插入一個文檔。

> db.col.insert({"title":"MongoDB","url":"路徑"})))
WriteResult({ "nInserted" : 1 })

我們也可以將數據定義爲一個變量,如下所示:

1.建文檔document
> document=({title: 'MongoDB 教程', 
    description: 'MongoDB 是一個 Nosql 數據庫',
    by: '菜鳥教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
});

2.文檔document保存到集合col
db.col.insert(document) 或者 db.col.save(document)

5.2 查看集合裏面的文檔

db.<集合>.find()

例:col集合裏面插入的兩個文檔。

> db.col.find()
{ "_id" : ObjectId("5ccfa7aba9e235c3e4d8e739"), "title" : "MongoDB" }
{ "_id" : ObjectId("5ccfa7e3a9e235c3e4d8e73a"), "title" : "MongoDB", "url" : "路徑" }

5.3 更新集合

5.3.1 update()

update() 方法用於更新已存在的文檔。語法格式如下:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

參數說明:
query : update的查詢條件,類似sql update查詢內where後面的。
update : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解爲sql update查詢內set後面的
upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入objNew,true爲插入,默認是false,不插入。
multi : 可選,mongodb 默認是false,只更新找到的第一條記錄,如果這個參數爲true,就把按條件查出來多條記錄全部更新。
writeConcern :可選,拋出異常的級別。

例:

db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})

5.3.2 save() 方法

save() 方法通過傳入的文檔來替換已有文檔。語法格式如下:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)
參數說明:

document : 文檔數據。
writeConcern :可選,拋出異常的級別。

例:將id爲5ccfa7aba9e235c3e4d8e739的文檔更換如下。

>db.col.save({
    "_id" : ObjectId("5ccfa7aba9e235c3e4d8e739"),
    "title1" : "MongoDB111"
})

5.3.3 刪除文檔:

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

參數說明:

query :(可選)刪除的文檔的條件。
justOne : (可選)如果設爲 true 或 1,則只刪除一個文檔,如果不設置該參數,或使用默認值 false,則刪除所有匹配條件的文檔。
writeConcern :(可選)拋出異常的級別。

例:

>db.col.remove({'title':'MongoDB 教程'})
>

5.4 查詢文檔

db.collection.find(query, projection)

query :可選,使用查詢操作符指定查詢條件
projection :可選,使用投影操作符指定返回的鍵。查詢時返回文檔中所有鍵值, 只需省略該參數即可(默認省略)。

除了 find() 方法之外,還有一個 findOne() 方法,它只返回一個文檔。 如果你需要以易讀的方式來讀取數據,可以使用 pretty() 方法,語法格式如下:

>db.col.find().pretty()

5.4.1條件語句查詢

操作      格式                      範例                                              RDBMS中的類似語句
等於      {<key>:<value>}              db.col.find({"by":"菜鳥教程"}).pretty()        where by = '菜鳥教程'
小於      {<key>:{$lt:<value>}}       db.col.find({"likes":{$lt:50}}).pretty()      where likes < 50
小於或等於 {<key>:{$lte:<value>}}        db.col.find({"likes":{$lte:50}}).pretty()   where likes <= 50
大於      {<key>:{$gt:<value>}}       db.col.find({"likes":{$gt:50}}).pretty()    where likes > 50
大於或等於 {<key>:{$gte:<value>}}        db.col.find({"likes":{$gte:50}}).pretty()   where likes >= 50
不等於    {<key>:{$ne:<value>}}        db.col.find({"likes":{$ne:50}}).pretty()    where likes != 50

5.4.2AND

>db.col.find({key1:value1, key2:value2}).pretty()

5.4.3 OR

>db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()

例:

db.col.find({$or:[{"by":"菜鳥教程"},{"title": "MongoDB 教程"}]}).pretty()

6 $type 匹配

例:匹配title是string類型數據(String對應MongoDB類型中的2)

db.col.find({"title" : {$type : 2}})
或
db.col.find({"title" : {$type : 'string'}})

7 limit與skip

從NUMBER2+1開始,顯示NUMBER1條,顯示。默認skip爲0;

db.COLLECTION_NAME.find().limit(NUMBER1).skip(NUMBER2)

例:指定返回title字段,

db.col.find({},{"title":1,_id:0}).limit(1).skip(1)

8 排序

其中 1 爲升序排列,而 -1 是用於降序排列。

db.COLLECTION_NAME.find().sort({KEY:1})

例:likes降序

db.col.find({},{"title":1,_id:0}).sort({"likes":-1})

9 索引

9.1 創建索引

keys爲數據字段,1 爲指定按升序創建索引,如果你想按降序來創建索引指定爲 -1。options爲參數。

db.collection.createIndex(keys, options)

例:

db.col.createIndex({"title":1,"description":-1})

9.2 查看集合索引

db.col.getIndexes()

9.3 查看集合索引大小

db.col.totalIndexSize()

9.4 刪除集合所有索引

db.col.dropIndexes()

9.5 刪除集合指定索引

db.col.dropIndex("索引名稱")

10 聚合

10.1 aggregate()

db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

聚合的表達式

$sum    計算總和。                       db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])
$avg    計算平均值                       db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}])
$min    獲取集合中所有文檔對應值得最小值。   db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}])
$max    獲取集合中所有文檔對應值得最大值。   db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}])
$push   在結果文檔中插入值到一個數組中。    db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}])
$addToSet   在結果文檔中插入值到一個數組中,但不創建副本。 db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}])
$first  根據資源文檔的排序獲取第一個文檔數據。 db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])
$last   根據資源文檔的排序獲取最後一個文檔數據   db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])

10.2 管道

參考:

https://www.runoob.com/mongodb/mongodb-intro.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章