1. 程式人生 > >MongoDB 資料庫命令操作

MongoDB 資料庫命令操作

1、建立資料庫
>use database_name  //如果資料庫不存在,將建立一個新的資料庫,否則將返回現有的資料庫;
>db             //檢查當前選擇的資料庫;
>show dbs //查詢資料庫列表, 新建立的資料庫不會在於列表中。要顯示的資料庫,需要至少插入一個文件進去;
2、向資料庫插入資料
db.COLLECTION_NAME.insert(document)
>db.student.insert({sno: 1001, name: "sxj", sex: "male"})    或者 >db.student.save({sno: 1002, name: "sxj", sex: 1}
)
如果要以單個查詢插入多個文件,可以通過文件 insert() 命令的陣列方式。
3、刪除資料庫

>db.dropDatabase()   //用於刪除現有的資料庫;

4、建立集合

db.createCollection(name, options) 用於建立集合,name (String型別)是要建立集合的名稱, options(Document型別,可選項)是一個文件,用於指定集合的配置(指定有關記憶體大小和索引選項)。

>db.createCollection("student")   //建立集合 student
>show collections  //檢視建立的集合

>db.createCollection("mycollection", {capped: true, autoIndexID: true, size: 6142800, max: 10000 } )


其實在MongoDB中並不需要建立集合。 當插入一些文件時 MongoDB 會自動建立集合。 5、刪除集合
>db.COLLECTION_NAME.drop()  //從資料庫中刪除集合;
6、查詢文件
>db.COLLECTION_NAME.find()
>db.
COLLECTION_NAME
.find().pretty()     //將結果格式化顯示;
>db.COLLECTION_NAME.findOne(condition)  //不能用pretty()方法 

limit(number)方法,限制查出的記錄數
sort(number)方法,用於跳過的檔案數
skip()方法,文件排序,使用1和-1指定排序順序。1用於升序,而-1是用於降序。
7、更新文件
MongoDB的update()和save()方法用於更新文件到一個集合。 update()方法將現有的文件中的值更新,而save()方法使用傳遞到save()方法的文件替換現有的文件。
>db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)
>db.student.update({'name':'sxj'},{$set:{'name':'zhangsan'}})
8、刪除文件 MongoDB 的 remove()方法用於從集合中刪除文件。remove()方法接受兩個引數。一個是標準缺失,第二是justOne標誌。deletion criteria : 根據檔案(可選)刪除條件將被刪除。justOne : (可選)如果有多個記錄,並要僅刪除第一條記錄,那麼設定justOne為true或1,只刪除一個文件。

>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)
>db.student.remove({'name':'sxj'})
>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
如果沒有指定刪除條件,則MongoDB將從集合中刪除整個檔案。
>db.student.remove({})
9、MongoDB投影

mongodb投影意義是隻選擇需要的資料,而不是選擇整個一個文件的資料。如果一個文件有5個欄位,只需要顯示3個,只從中選擇3個欄位。

MongoDB的find()方法,解釋了MongoDB中查詢文件接收的第二個可選引數是要檢索的欄位列表。在MongoDB中,當執行find()方法,那麼它會顯示一個文件的所有欄位。要限制這一點,需要設定欄位列表值為1或0。1是用來顯示欄位,而0被用來隱藏欄位。

>db.COLLECTION_NAME.find({},{KEY:1})
10、MongoDB索引
索引支援查詢高效率執行。如果沒有索引,MongoDB必須掃描集合中的每一個文件,然後選擇那些符合查詢語句的文件。若需要MongoDB來處理大量資料,掃描是非常低效的。
索引是特殊的資料結構,儲存在一個易於設定遍歷形式的資料的一小部分。索引儲存在索引中指定特定欄位的值或一組欄位,並排序欄位的值。
要建立索引,需要使用MongoDB的ensureIndex()方法。
>db.COLLECTION_NAME.ensureIndex({KEY:1})   //這裡鍵是要建立索引欄位,1是按名稱升序排序。若以按降序建立索引,需要使用 -1.
11、MongoDB 聚合
聚合操作處理資料記錄並返回計算結果。從多個文件聚合分組運算元值,並可以執行多種對分組資料業務返回一個結果。 在SQL中的count(*),使用group by 與mongodb的聚合是等效的。 對於MongoDB的聚合,使用的是aggregate()方法。
>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

12、複製副本
要轉換為副本集,按照以下的步驟:
  • 關閉已經執行的 MongoDB 伺服器。
  • 現在,通過指定--replSet選項啟動 MongoDB 伺服器。--replSet 的基本語法如下:

mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
例子:
mongod --port 27017 --dbpath "D:\MongoDB\data\bin" --replSet rs0
  • 這將啟動一個名為rs0的一個mongod例項,埠為: 27017

  • 現在開啟啟動命令提示符,然後連線到mongod例項
  • 在Mongo的客戶端使用命令rs.initiate()來啟動一個新的副本集
  • 要檢查副本設定配置,則使用命令rs.conf()

  • 要檢查副本集發行的狀態,使用命令rs.status()

13、備份與恢復
>mongodump      //轉儲伺服器的所有資料到轉儲目錄
>mongorestore //從備份目錄恢復所有的資料