1. 程式人生 > >MongoDB簡單操作

MongoDB簡單操作

class mil 管理 drop 刪除數據 iter inf dbms document

MongoDB是一個基於 分布式 文件存儲的開源數據庫系統

在高負載的情況下,添加更多的節點,可以保證服務器性能

MongoDB將數據存儲為一個文檔,數據結構由鍵值(key=value)對組成.

1.1LinuxMongoDB將數據目錄存在data目錄的db目錄下,需要我們自己主動創建。

mkdir -p /data/db (/datat/dbMongoDB默認的啟動的數據庫路徑 --dpath)

1.2 MongoDB後臺管理shell

技術分享圖片

1.3查看當前操作的文檔(數據庫):db

技術分享圖片

1.4插入簡單的記錄,並查找它:

>db.runoob.insert({x:10}) //將數字

10插入到runoob集合x字段中

>db.runoob.find()

技術分享圖片

2.1MongoDB概念

技術分享圖片

2.2 數據庫

一個mongodb可以建立多個數據庫。

默認數據庫為”db“,存儲在data目錄下

MongoDB 中默認的數據庫為 test,如果你沒有創建新的數據庫,集合將存放在 test 數據庫中

1)show dbs可以顯示所有數據的列表

技術分享圖片

2)use 可以連接到一個指定的數據庫

>use local

switched to local

>db

local

>

2.3 文檔

文檔是一組鍵值(key-value

eg: {"site":"www.bird.com","name":"bird

"}

技術分享圖片

註:1、文檔中的鍵/值是有序的。

2、文檔中的 值 不僅可以是雙引號裏面的字符串,還可以是其他幾種數據類型

3MongoDB區分類型和大小寫

4MongoDB的文檔不能有重復的鍵

5、文檔的鍵是字符串。除了少數例外情況,鍵可以使用任意UTF-8字符

2.4 集合

集合就是MongoDB文檔組,類似於RDBMS(關系數據庫管理系統)中的表格

2.5MongoDB數據類型

技術分享圖片

技術分享圖片

3.1 刪除數據庫

語法:db.dropDatabase() //刪除當前數據庫,默認為test

實例:

1、進入一個數據庫

>use test

switched to db test

>

2、執行刪除命令

>db.dropDatabase()

{"dropped" : "test" , "ok" : 1}

3.2 刪除集合

語法:db.collection.drop()

eg:>use test

switched to db test

>show tables

site

>db.site.drop

true

>show tables

>

3.3 刪除數據

1. 刪除"ban_friends_id":"BAN121113"數據

1 > db.test_ttlsa_com.remove({"ban_friends_id":"BAN121113"})

3.4刪除表中所有的數據

db.表名.remove({})

4.1插入文檔

語法:db.Collection_name.insert(doucument)

1eg:runoob數據庫中的col集合中存入文檔

>db.runoob.insert({title:‘MongoDB‘,

description:‘MongoDB是一個nosql數據庫

tags:[‘mongodb‘,‘database‘,‘nosql‘]

likes:100

})

如果col集合不在數據庫裏,MongoDB會自動創建此集合

2)查看插入的文檔

>db.runoob.find()

4.2 將數據定義為一個變量

>document={title=‘MongoDB‘,

description:‘MongoDB是一個Nosql數據庫

tags:[‘mongodb‘,‘database‘,‘nosql‘]

likes:100

};

執行插入操作:

>db.col.insert(document)

WriteResult({"nInserted":1})

>

也可以使用db.clo.save(document)

5、查詢

技術分享圖片

5.1.1小於 pretty() 方法以格式化的方式來顯示所有文檔

eg:db.access_points.find({"admin_id":{$lt:50}}).pretty()

5.1.2小於或等於

egdb.access_points.find({"admin_id":{$lte:50}}).pretty()

5.1.3大於:

eg:db.access_points.find({"admin_id":{$gt:50}})

5.1.4大於或等於

eg:db.access_points.find({“admin_id”:{$gle:50}})

5.1.5 不等於

egdb.access_points.find({"admin_id":{$ne:50}})

5.2 去重查詢

eg: db.access_controllers.distinct("admin_id")

技術分享圖片

5.3 or 或查詢

語法:

db.status.find({$ or : [{key1,value},{key2:value}]})

eg: db.access_points({$or:[{“admin_id”:1},{"mac":"111111111111"}]}).pretty()

5.4 Skip() :跳過記錄條數:

eg:db.access_points.find().skip(2) //跳過第2條數據

5.5 sort() 排序

egdb.access_controllers.find({"type":1},{admin_id:1}).sort({admin_id:-1}) // -1降序;1 升序

技術分享圖片

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

補充說明:

第一個 {} where 條件,為空表示返回集合中所有文檔。

第二個 {} 指定那些列顯示和不顯示 (0表示不顯示 1表示顯示)

5.6 正則查詢

1)查詢包含字符串test的內容

>db.posts.find({post_text:{$regex:"test"}})

2)查詢包含字符test的內容

>db.posts.find({post_text:/test/})

3) 查詢日期包含2017-09-06T01:33的字符串

db.summary.find({"insert_time" : {"$gte":ISODate(/.*2017-09-06T01:33.*/)},"org_id":1},{"device":1,"insert_time":1})

技術分享圖片

MongoDB簡單操作