1. 程式人生 > >MongoDB(二) Shell 命令

MongoDB(二) Shell 命令

數據 esc lec 函數 bool rip mongodump drop 所有

創建數據庫

MongoDB 創建數據庫的語法格式如下:

use DATABASE_NAME

如果數據庫不存在,則創建數據庫,否則切換到指定數據庫。

如果你想查看所有數據庫,可以使用 show dbs 命令:

show dbs

刪除數據庫

MongoDB 刪除數據庫的語法格式如下:

db.dropDatabase()

刪除當前數據庫,默認為 test,你可以使用 db 命令查看當前數據庫名。

刪除集合

集合刪除語法格式如下:

db.collection.drop()

插入文檔

文檔的數據結構和JSON基本一樣。
所有存儲在集合中的數據都是BSON格式。
BSON是一種類json的一種二進制形式的存儲格式,簡稱Binary JSON。

MongoDB 使用 insert() 或 save() 方法向集合中插入文檔,語法如下:

db.COLLECTION_NAME.insert(document)

示例:

db.col.insert({"title": "個人主頁", 
"description": "zhongchun的主頁", 
"by": "zhongchun", 
"url": "http://yuzhongchun.com", 
"tags": [‘mongodb‘, ‘database‘, ‘NoSQL‘], 
"likes": 100})
document=({"title": "個人主頁", "description": "zhongchun的主頁", "by": "zhongchun", "url": "http://yuzhongchun.com", "tags": [‘mongodb‘, ‘database‘, ‘NoSQL‘], likes: 100})
// 執行後如下
{
    "title" : "個人主頁",
    "description" : "zhongchun的主頁",
    "by" : "zhongchun",
    "url" : "http://yuzhongchun.com",
    "tags" : [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes" : 100
}
// 執行插入操作
db.col.insert(document)
WriteResult({ "nInserted" : 1 })

插入文檔也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法類似於 insert() 方法。如果指定 _id 字段,則會更新該 _id 的數據。

更新文檔

MongoDB 使用 update() 和 save() 方法來更新集合中的文檔。接下來讓我們詳細來看下兩個函數的應用及其區別。

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‘: "個人主頁"}, {$set:{‘title‘: "BerMaker"}})

save() 方法

語法格式如下:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

參數說明:

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

示例:

db.col.save({"_id" : ObjectId("59a6a3d4963d665550f6e2d2"), "title" : "不涸", "description": "zhongchun的主頁"})

運行結果:

> db.col.find().pretty()
{
    "_id" : ObjectId("59a6a3d4963d665550f6e2d2"),
    "title" : "不涸",
    "description" : "zhongchun的主頁"
}

刪除文檔

備份與還原

mongodump -h 10.94.241.53 --port 8017 -d boundary_tool -o /home/map/data/mongo/201708301810
mongorestore -h 10.101.44.169 --port 27017 -d boundary_tool --drop /home/wuzhibin/yuzhongchun/data/mongo/boundary_tool

drop 表示先刪除所有的記錄,然後恢復。

單表導出與導入

導出

mongoexport --host 10.206.210.30 --port 27019 --db boundary_tool --collection boundary --out boundary.json

導入

mongoimport --host 127.0.0.1 --port 8017 --db boundary_tool --collection boundary --file boundary.json

參考

  1. mongodb 數據庫操作--備份 還原 導出 導入

MongoDB(二) Shell 命令